Appium学习笔记||八、滑动页面

匿名 (未验证) 提交于 2019-12-02 23:40:02

一、方法

  Appium的swipe方法:swipe(self, start_x, start_y, end_x, end_y, duration=xxx)

二、可以先获取元素坐标,然后根据上述方法滑动

  获取元素坐标方法,可以去appium或者uiautomator中,通过鼠标查看x,y的坐标值。

  

from appium import webdriverimport timedesired_caps = {}desired_caps['platformName'] = 'Android'#运行平台desired_caps['platformVersion'] = '8.1.0'#安卓版本desired_caps['deviceName'] = 'test'#设备名称,不重要desired_caps['appPackage'] = 'com.tencent.qqlive'#Package名字desired_caps['appActivity'] = '.ona.activity.WelcomeActivity'#appActivity名字desired_caps['unicodeKeyboard'] = Truedesired_caps['resetKeyboard'] = Truedesired_caps['noReset'] = Truedesired_caps['newCommandTimeout'] = 6000driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)driver.implicitly_wait(10)time.sleep(5)for i in range(5):    driver.swipe(200, 500, 900, 500, 1000)#纵坐标不动,只有横坐标变化,这里是从左向右滑    time.sleep(1)

 三、但是由于设备不同,坐标也不同。

  为了避免这个问题,最好可以先获取当前页面的尺寸,然后再根据当前屏幕的尺寸进行定位。

 1 from appium import webdriver  2 import time  3   4 desired_caps = {}  5 desired_caps['platformName'] = 'Android'#运行平台  6 desired_caps['platformVersion'] = '8.1.0'#安卓版本  7 desired_caps['deviceName'] = 'test'#设备名称,不重要  8 desired_caps['appPackage'] = 'com.tencent.qqlive'#Package名字  9 desired_caps['appActivity'] = '.ona.activity.WelcomeActivity'#appActivity名字 10 desired_caps['unicodeKeyboard'] = True 11 desired_caps['resetKeyboard'] = True 12 desired_caps['noReset'] = True 13 desired_caps['newCommandTimeout'] = 6000 14  15 driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) 16 driver.implicitly_wait(10) 17  18 time.sleep(5) 19  20 screenSize = driver.get_window_size()#返回个字典 21 print(f"当前屏幕尺寸为{screenSize}")#当前屏幕尺寸为{'width': 1080, 'height': 2280} 22 width = screenSize['width'] 23 height = screenSize['height'] 24  25 for i in range(20): 26     driver.swipe(width * 0.2, height * 0.3, width * 0.8, height * 0.3, 500)#重点看这里 27     time.sleep(0.5)

三、通过location属性和size属性,计算得出滑动的起止坐标

ele = driver.find_element_by_xpath("//*[@resource-id='com.tencent.qqlive:id/c0b']//android.widget.RelativeLayout[2]")#先选择元素location = ele.location#获取元素位置(左上角坐标){'x': 1050, 'y': 363}size = ele.size#获取元素尺寸{'height': 567, 'width': -6}start_x = location["x"]+int(size['width'])*0.2start_y = location["y"]+int(size['height'])*0.5end_x = location['x']+int(size['width'])*0.8end_y = location['y']+int(size['height'])*0.5for i in range(20):    driver.swipe(start_x,start_y,end_x,end_y,500)    time.sleep(0.5)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!