Appium

1、capabilities设置与启动

①启动本地服务器

②启动检查器

③填入相应的参数

deviceName获取方式:adb devices

appPackage获取方式:aapt dump badging + 包名

appActivity获取方式:aapt dump badging + 包名

快速匹配:aapt dump badging + 包名 | find “launchable-activity”

关于跟手机建立连接:

https://blog.csdn.net/JOJOY_tester/article/details/72081905

Appium几种定位元素的方法:

1、id定位

2、元素定位

①name、classname定位

②相对定位

3、xpath定位('//*[@类名="xxx"]')

XPath使用路径表达式从XML文档中选择一个或多个节点的列表。以下是有用的路径和表达,从XML文档选择节点的任何节点/列表清单。

表达式描述
node-name 选择具有给定名称的所有节点“nodename”
/ 选择从根节点开始
// 选择从当前节点匹配开始的选择
. 选择当前节点
.. 选择当前节点的父节点
@ 选择属性
student 例如:选择名称为“student”的所有节点
class/student 例如:选择属于类的所有学生的子类元素
//student 选择文档中所有学生的元素

谓词

谓词用于查找特定的节点或一个节点含有特定的值,并使用所定义 [...] .

表达式结果
/class/student[1] 选择的是类元素的子第一个学生的元素
/class/student[last()] 选择的是类元素的子最后一个学生的元素
/class/student[last()-1] 选择的是类元素倒数的第二个学生的子元素
//student[@rollno='493'] 选择一个名为rollno为'493'值的属性的学生元素

xpath匹配符

通配符描述
* 匹配任何元素节点
@* 匹配任何属性节点
node() 匹配任何类型的节点
   

4、list定位

find_elements_by_xx (多个元素定位)

 生成随机的账户:用到random

5、Android Uiautomator定位

 

 元素等待

http://www.cnblogs.com/mengyu/p/6972968.html

①强制等待

设置固定的等待时间,使用sleep()方法实现

from time import sleep

# 强制等待5秒

sleep(5)

②隐式等待

隐式等待是针对全部元素设置的等待时间

driver.implicitly_wait(2)  # 等待2秒

③显式等待 

 显式等待是针对某个元素来设置的等待时间

 

 Toast元素识别

 

H5元素搭建

屏幕截图

driver.save_screenshot() 保存截图到当前路径

driver.get_screenshot_as_file() 保存截图到指定路径

appium滑动操作

连续滑动

TouchAction

先导入对应的模块:

from appium.webdriver.common.touch_action import TouchAction

对应操作的方法:

短按:press()  按压一个元素或坐标

TouchAction(driver). press(x,y) 

长按:longpress()  比按压多个一个duration(按压时间)时间参数,以毫秒为单位

TouchAction(driver).longpress(x,y,1000) 

点击:tap()

移动:move_to()

暂停:wait() 等待时间,单位毫秒

释放:release() 结束屏幕上的一系列动作的命令操作

执行:perform() 讲执行的操作发送到服务器的命令操作

组合示例:

TouchAction(driver). press(x,y) .wait(1000).move_to(x2,y2).release() #点击->等待1000毫秒->移动->释放

地图缩放

 MultiAction

导入

from appium.webdriver.common.touch_action import TouchAction

from appium.webdriver.common.multi_action import MultiAction

 

capabilities更改为yaml

官网下载地址:https://pypi.org/project/pyaml/

pip install pyyaml  安装yaml

如果遇到报:

 处理方法:

安装完毕后检测是否安装成功 cmd->python->import yaml

 

  

日志收集

 

 首先我们日志需要按照info、debug、error等级别来进行区分的。当然这个级别可以自己去设置。在一般的情况下我们普通的输出我们直接用info类型,调试的时候用debug类型,如果预计有错误时那么我们就需要用error类型的日志,一般情况去info级别最为合适。

日志格式化是为了提高日志的可阅读性,比如:时间+模块+行数+日志具体信息 的内容格式。如果日志信息杂乱无章的全部输出来,这样也不利于定位问题。如下所示就是日志格式化输出,非常便于阅读查看。

原文地址:https://www.cnblogs.com/bufuhaoshiguang/p/10496630.html