5、手指移动操作
move_to()
方法:模拟手机的滑动操作。
方法介绍:
# move_to()方法
move_to(el=None, x=None, y=None)
参数:
1.el:定位的元素
2.x:滑动到元素的X轴坐标
3.y:滑动到元素的Y轴坐标
# 调用方式
TouchAction(driver).press(save).move_to(el=None, x=None, y=None).release().perform()
业务场景:
进入设置app
在设置app首页从存储滑动到蓝牙
代码实现:
"""
1.学习目标
掌握TouchAction类中手指移动使用
2.操作步骤
移动 move_to(元素)
3.需求
在设置app首页从存储滑动到蓝牙
"""
# 1.导入appium和TouchAction
import time
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
# 2.创建Desired capabilities对象,添加启动参数
desired_caps = {
"platformName": "Android", # 系统名称
"platformVersion": "7.1.2", # 系统版本
"deviceName": "127.0.0.1:21503", # 设备名称
"appPackage": "com.android.settings", # APP包名
"appActivity": ".Settings" # APP启动名
}
# 3.启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
time.sleep(2)
# 4.操作APP
# 在设置app首页从存储滑动到蓝牙
save = driver.find_element_by_android_uiautomator('new UiSelector().text("存储")')
blue_tooth = driver.find_element_by_android_uiautomator('new UiSelector().text("蓝牙")')
# 滑动,相当于于向上滑动屏幕操作
TouchAction(driver).press(save).wait(5000).move_to(blue_tooth).release().perform()
# 5.关闭APP
time.sleep(5)
driver.quit()
6、综合练习
业务场景:打开设置app,设置屏幕锁定。
说明:
-
实现步骤:
打开设置app首页,
需要向上滑动屏幕(手势),到页面显示"安全"选项。
定位"安全"选项,并进入安全页面。
在安全页面中定位”屏幕锁定“选项,并点击进入。
”屏幕锁定“页面定位”图案“选项,并点击进入。
开始绘制
z
字型图案。 -
问题:
1,不能直接定位到9个黑点的位置。因为红框内为一个元素,是一个整体,所以只能通过坐标的方式来进行定位。
2,如何使用坐标的方式定位黑点
方法很简单,就在UI Automator Viewer
工具中,把鼠标放在黑点的上方就可以了。如下图:
(注意:需要把工具的界面拉大一些。)
代码实现:
# 1.导入appium和TouchAction
import time
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
# 2.创建Desired capabilities对象,添加启动参数
desired_caps = {
"platformName": "Android", # 系统名称
"platformVersion": "7.1.2", # 系统版本
"deviceName": "127.0.0.1:21503", # 设备名称
"appPackage": "com.android.settings", # APP包名
"appActivity": ".Settings" # APP启动名
}
# 3.启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
time.sleep(2)
# 4.操作APP
# 4.1 在设置app首页从存储滑动到蓝牙
# 定位“存储”和“滑动”元素
save = driver.find_element_by_android_uiautomator('new UiSelector().text("存储")')
blue_tooth = driver.find_element_by_android_uiautomator('new UiSelector().text("蓝牙")')
# 开始滑动屏幕
driver.scroll(save, blue_tooth, duration=4000)
time.sleep(2)
# 4.2 定位“安全”选项,并点击进入。
safe = driver.find_element_by_android_uiautomator('new UiSelector().text("安全")')
# 使用tap()方法,轻敲点击进入
TouchAction(driver).tap(safe).perform()
time.sleep(1)
# 4.3 定位“屏幕锁定”选项,并点击进入。
# 定位“屏幕锁定”选项
lock = driver.find_element_by_android_uiautomator('new UiSelector().text("屏幕锁定")')
# 使用按下和抬起操作,点击进入
TouchAction(driver).press(lock).wait(3000).release().perform()
time.sleep(1)
# 4.4 定位“图案”选项,并点击进入。
# 定位“图案”选项
design = driver.find_element_by_android_uiautomator('new UiSelector().text("图案")')
# 使用长按操作,点击进入
TouchAction(driver).long_press(el=design, duration=3000).release().perform()
time.sleep(1)
# 5.开始绘图
TouchAction(driver).press(x=145, y=615).move_to(x=575, y=620).wait(3000) \
.move_to(x=145, y=1050).wait(3000) \
.move_to(x=575, y=1050).release().perform()
# 之后可以点击确定等继续操作
# 6.关闭APP
time.sleep(5)
driver.quit()