文章目录

  • 1.swipe从坐标点滑动到坐标点
  • 2.scroll从元素位置滑动到元素位置(有惯性)
  • 3.drag_and_drop从元素位置滑动到元素位置(无惯性)

使用手机时会遇到下滑,拖拽等操作,这就需要用滑动的方法。

1.swipe从坐标点滑动到坐标点

#5个参数(起始横坐标,起始纵坐标,结束横坐标,结束纵坐标,滑动时长单位毫秒)
driver.swipe(start_x,start_y,end_x,end_y,duration=None)
#每次操作的期望时间与真实时间有误差,造成了每次的滑动距离不等。
#滑动操作具有惯性,速度快,惯性大;速度慢惯性小。可能导致每次滑动的距离不等
#滑动时长越大,惯性越小,滑动距离越准确

用5秒的时间,向下滑动900个像素点,代码:

#导入库
from appium import webdriver
import time

desired_caps = dict()#创建字典
desired_caps['platformName'] = 'Android'#添加字典字段:手机平台(Android、iOS)
desired_caps['platformVersion'] = '5.1'#添加字典字段:系统版本号(可从手机的设置里面查看)
desired_caps['deviceName'] = 'myphone'#添加字典字段:设备名称(随便写即可)
desired_caps['appPackage'] = 'com.android.settings'#添加字典字段:要打开的app包名
desired_caps['appActivity'] = 'com.android.settings.Settings'#添加字典字段:APP的界面名
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#调用方法,其中'http://localhost:4723/wd/hub'即为appium服务器地址
driver.find_element_by_id("android:id/button1").click()#根据id定位元素,弹出应用的授权框,点击“确认”

driver.swipe(100,1000,100,100,5000)#用5秒的时间,向下滑动900个像素点
time.sleep(3)#等待3秒

driver.quit()#退出此次驱动连接

2.scroll从元素位置滑动到元素位置(有惯性)

#从一个元素滑动到另一个元素,有惯性
#2个参数(起始元素,终止元素)
driver.scroll(origin_el,des_el)

从蓝牙滑动到无线网络,代码:

#导入库
from appium import webdriver
import time

desired_caps = dict()#创建字典
desired_caps['platformName'] = 'Android'#添加字典字段:手机平台(Android、iOS)
desired_caps['platformVersion'] = '5.1'#添加字典字段:系统版本号(可从手机的设置里面查看)
desired_caps['deviceName'] = 'myphone'#添加字典字段:设备名称(随便写即可)
desired_caps['appPackage'] = 'com.android.settings'#添加字典字段:要打开的app包名
desired_caps['appActivity'] = 'com.android.settings.Settings'#添加字典字段:APP的界面名
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#调用方法,其中'http://localhost:4723/wd/hub'即为appium服务器地址
driver.find_element_by_id("android:id/button1").click()#根据id定位元素,弹出应用的授权框,点击“确认”

bluetooth=driver.find_element_by_xpath("//*[@text='蓝牙']")
wifi=driver.find_element_by_xpath("//*[@text='无线网络']")

driver.scroll(bluetooth,wifi)#从蓝牙滑动到无线网络
time.sleep(3)#等待3秒

driver.quit()#退出此次驱动连接

3.drag_and_drop从元素位置滑动到元素位置(无惯性)

#从一个元素滑动到另一个元素,没有惯性
#2个参数(起始元素,终止元素)
driver.drag_and_drop(origin_el,des_el)

从蓝牙滑动到无线网络,代码:

#导入库
from appium import webdriver
import time

desired_caps = dict()#创建字典
desired_caps['platformName'] = 'Android'#添加字典字段:手机平台(Android、iOS)
desired_caps['platformVersion'] = '5.1'#添加字典字段:系统版本号(可从手机的设置里面查看)
desired_caps['deviceName'] = 'myphone'#添加字典字段:设备名称(随便写即可)
desired_caps['appPackage'] = 'com.android.settings'#添加字典字段:要打开的app包名
desired_caps['appActivity'] = 'com.android.settings.Settings'#添加字典字段:APP的界面名
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#调用方法,其中'http://localhost:4723/wd/hub'即为appium服务器地址
driver.find_element_by_id("android:id/button1").click()#根据id定位元素,弹出应用的授权框,点击“确认”

bluetooth=driver.find_element_by_xpath("//*[@text='蓝牙']")
wifi=driver.find_element_by_xpath("//*[@text='无线网络']")

driver.drag_and_drop(bluetooth,wifi)#从蓝牙滑动到无线网络
time.sleep(3)#等待3秒

driver.quit()#退出此次驱动连接