技术标签: Appium
以页面为单位组织封装, 隐藏实现细节; 可读性提高, 减少findElement,click代码, 页面发生变化修改对应page,不影响整体用例
原则:
解读:
改造:
用例组织结构
使用package管理模块,基本可以分成5个模块
使用class管理业务对象
使用method实现具体行为
测试用例使用简单几行代码根据方法名快速识别功能
App类封装启动和退出的细节
class App:
driver:WebDriver = None
platform = None
ANDROID = 1
IOS = 2
@classmethod
def start(cls):
caps = {
}
caps["appActivity"] = ".HomeActivity"
caps["platformName"] = "Android"
caps["deviceName"] = "JTK5T19917028084"
caps["appPackage"] = "com.mintegral.sdk.demo"
cls.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
cls.platform = cls.ANDROID
return FrontPage(cls.driver)
@classmethod
def quit(cls):
cls.driver.quit()
@classmethod
def getPlatform(cls):
return cls.platform
start后返回FrontPage对象。
frontpage完成对该页面下一步操作的实现,继承自BasePage,返回下一个页面po
class FrontPage(BasePage):
native_indicator = (By.XPATH,"//*[@text='Native']")
def toNative(self):
self.findElement_then_click(self.native_indicator)
return NativeChoicePage(self.driver)
封装过程(类似于TDD风格):
BasePage封装
class BasePage:
def __init__(self,driver:WebDriver):
self.driver = driver
def findElement(self,indicator):
return self.driver.find_element(*indicator)
def findElement_then_click(self,indicator):
self.findElement(indicator).click()
......
当前端页面与后台运行在不同的服务器时,就必定会出现跨域这一问题,本篇简单介绍解决跨域的三种方案,部分代码截图如下,仅供参考:方式一:使用ajax的jsonp前端代码服务器代码使用该方式的缺点:请求方式只能是get请求方式二:使用jQuery的jsonp插件插件下载网址:https://github.com/jaubourg/jquery-jsonp前端代码服务器代码使用该方式的特点:与方式一相比,请求方式不只局限于get请求,还可以是post请求,但从服务器从获取的数据依然是jsonp...
MySQL之存储函数
pycharm中使用阿里镜像源方法很多小伙伴因为导入包的时候因为下载速度过慢而头疼,这是因为pycharm下载包的默认源是国外网站(https://pypi.python.org/simple),这时候我们可以用清华镜像或者其他镜像源1、首先进入设置界面(File-Settings)2、进入安装包的界面,点击右边的+号3、点击Manage Repoditories,这个就是设置仓库4、添加清华镜像源,点击OK5、配置成功...
If you have followed my blog you may have noticed that a lot of focus have been put on how to learn programming (particularly in Python). I have also written about Integrated Development Environments ...
华中科技大学研究生考试大纲为广大想报考华中科技大学的考生划出了大致的考试范围以及试卷的结构和题型,是广大考研学生的重要参考文件之一。下面是研招网小编为大家整理的最新2018考研华中科技大学961计算机组成原理(二)考试大纲,以供大家参考。硕士研究生入学考试大纲――《计算机组成原理(二)》科目代码(961)一、考试性质《计算机组成原理》是报考我校协和医院生物医学工程学硕士的专业基础课,旨在考察学生是...
1、localStorage本地存储localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。2、sessionStorage会话存储sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。源生接口可以接受,亦可再次封装来对Object
// ViewController.swift// RxSwiftTest//// Created by travey on 2018/11/5.// Copyright 2018年 ZhouShijie. All rights reserved.import UIKitimport RxSwiftimport RxCocoaimport SnapKitimp...
题目:有诗云: 相思 (王维 唐)红豆生南国, 春来发几枝。愿君多采撷, 此物最相思。那么,我们来采红豆吧!假设红豆树是这个样子的:这种红豆树的特点是:每个结点都有一个正整数编号,标在结点内部。结点的编号各不相同。 最上方一层结点是“红豆”(图中红圈所示的5个结点),这一层被称之为红豆层。 树的根结点、左子结点、右子结点、左子树、右子树等的定义与“数据结构”中的“二叉树”相同,但它毕竟是“自然界中的树”,树根在最下方,如图中的结点5 图中这棵红豆树...
华中科技大学计算机组成原理慕课第四章 存储系统(一) 单元测验(习题+答案+详细解析)
Pycharm IDE安装pandas库失败解决方法作为一名python新手,我们利用Pychram IDE进行编程时总是会遇到一些配置上的难题。比如,在配置第三方库文件时,我们会遇到漫长的等待安装时间后,却发现安装失败!!!具体的安装失败错误提示为:Error occur when installing " "找遍了各种方法,发现下面的解决方案真的屡试不爽:进入Pycharm的terminal:输入:python -m pip install -upgrade pip或者在P
常用命令一、网卡部分1、确认IP地址命令ifconfigifconfig -aifconfig ethX2、关闭命令ifdown ethXservice network stop3、开启命令ifup ethXservice network start4、重启命令service network restart/etc/init.d/network restart5、修改IP地址命令vi /etc/s...
华中理工大学1999硕士入学计算机组成原理真题一.填空(每空1分,共20分)1.计算机中数值数据表示长采用的格式有 和 两种。2.已知十进制数,则相应的二进制数X= ,[X]补= 。3.若X=-0.X1X2……Xn,则[X]原= ,[-X]补= 。4.主机与外部设备之间以软件方式控制信息交换的方式有 ...