appium 操作界面
操作界面函数:
1、swipe():模拟滑动
2、tap():点击坐标
3、from appium.webdriver.common.touch_action import TouchAction
1、swipe()函数:用来模拟滑动操作
参数说明:
坐标就是x/y坐标
duration是滑动从起点到终点坐标所耗费的时间。
比如手机翻看新闻,如果很快会导致,飞速上滑(扫动)很多,而很慢就不同,
查看坐标:
UIAutomatorviewer工具查看坐标或者appium自带的工具
滑动坐标变化:
左右滑动,y不变,上下滑动,x不变
动态获取元素坐标:
原因:因为屏幕分辨率不同,导致代码可能不对,所以需要去定位元素的坐标
根据元素的location属性来获取坐标(相对屏幕左上角坐标),返回值为dict,key为‘x’,'y'
获取元素的大小:
元素的size属性 返回值为dict,key为:width,height
通过元素坐标与元素大小结合,就可以知道每个角的坐标了
例子:
ele = driver.find_element_by_id('com.huawei.appmarket:id/backimage')
time.sleep(2)
location = ele.location
size1 = ele.size
print(location, size1)
x1 = location['x'] + int(size1['width'] * 0.8)
x2 = location['x'] + int(size1['width'] * 0.2)
y = location['y'] + int(size1['height'] * 0.5)
for i in range(10):
driver.swipe(start_x=x1, start_y=y, end_x=x2, end_y=y, duration=500)
time.sleep(0.5)
2、点击坐标tap()函数
driver.tap([(448,494)],1000) # 点击坐标,停留1秒
3、高级手势
参考:https://www.bbsmax.com/A/Gkz1P926dR/
高级手势TouchAction可以实现一些针对手势的操作,比如滑动、长按、拖动等。我们可以将这些基本手势组合成一个相对复杂的手势。比如,我们解锁手机或者一些应用软件都有手势解锁的这种方式。
3.1、轻敲操作
需要导入模块:from appium.webdriver.common.touch_action import TouchAction
TouchAction(driver).tap(element=None, x=None, y=None).perform():参数可以是元素,也可以是x,y坐标。
3.2、按下抬起操作
TouchAction(driver).press(el=None, x=None, y=None).perform():模拟手指按下,参数和轻敲操作一样。
TouchAction(driver).release().perform():模拟手指对元素或坐标的抬起操作。
3.3、等待操作
TouchAction(driver).wait(ms=0).perform():参数是暂停的毫秒数。
3.4、长按操作
TouchAction(driver).move_to(el=None, x=None, y=None).perform():参数同上