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为:widthheight

通过元素坐标与元素大小结合,就可以知道每个角的坐标了

例子:

 

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():参数同上

 

posted @ 2019-11-14 16:45  爱语默  阅读(519)  评论(0编辑  收藏  举报