通过id定位
方法:find_element_by_id(id_value) # id_value:为元素的id属性值
elements获取一组数据
app中三种等待方法
强制等待
导入定时等待库 from time import sleep 或者 import time
隐式等待
这个等待表示在规定的时间内页面的所有元素都加载完了就执行下一步,否则一直等到时间截止,然后再继续下一步。 这个方法的缺点是你需要的元素已经加载出来了,但页面还没有加载完,再需要继续等待页面加载完才能执行下一步操作。
driver.implicitly_wait(30) #等待30s
注:隐式等待的作用域是全局,所以一般设置在整局代码的头几行。 隐式等待采用全部设置,也就是说,你所有的findElement方法都会最多等待30s
显式等待
WebDriverWait类是由WebDirver 提供的等待方法。显示等待明确的要等到某个元素的出现,在设置时间内每隔x秒去判断一下指定的元素是否加载完,加载完了就执行下一步,否则继续每隔x秒去判断,指定时间截止。如果超时就会抛出异常
强制等待:傻瓜式等待,不智能 隐式等待:全局通用,只需设置一次,很智能(等到了就走,不会浪费时间) 显式等待:等待元素处于特定条件的时候使用,很智能(等到了就走,不会浪费时间)
app中的滑动事件
APP模拟手势高级操作
TouchAction是AppiumDriver的辅助类,主要针对手势操作,比如滑动、长按、拖动等,
原理是将一系列的动作放在一个链条中发送到服务器,服务器接受到该链条后,解析各个动作,逐个执行。
手指轻敲操作
模拟手指轻敲一下屏幕操作
方法:tap(element=None, x=None, y=None)
方法:perform() # 发送命令到服务器执行操作
参数:
1.element:被定位到的元素
2.x:相对于元素左上角的坐标,通常会使用元素的X轴坐标
3.y:通常会使用元素的Y轴坐标
代码实现:
#通过元素定位方式敲击屏幕
通过坐标方式敲击屏幕,WLAN坐标
手指按操作
模拟手指按下屏幕,按就要对应着离开.
方法:press(el=None, x=None, y=None)
方法:release() # 结束动作,手指离开屏幕
参数:
1.element:被定位到的元素
2.x:通常会使用元素的X轴坐标
3.y:通常会使用元素的Y轴坐标
通过元素定位方式按下屏幕
通过坐标方式按下屏幕,WLAN坐标
x=144 y=266
手指移动操作
模拟手机的滑动操作
方法:move_to(el=None, x=None, y=None)
参数:
1.el:定位的元素
2.x:相对于前一个元素的X轴偏移量
3.y:相对于前一个元素的Y轴偏移量
等待操作
方法:wait(ms=0)
参数:
ms:暂停的毫秒数
通过定位方式长按元素
通过坐标方式模拟长按元素
手指移动操作
模拟手机的滑动操作
方法:move_to(el=None, x=None, y=None)
参数:
1.el:定位的元素
2.x:相对于前一个元素的X轴偏移量
3.y:相对于前一个元素的Y轴偏移量