徐州最好网站建设,wordpress 指定分类,seo标题关键词优化,网站制作需要网站制作TouchAction操作 Appium的辅助类#xff0c;主要针对手势操作#xff0c;比如滑动、长按、拖动等。其原理是将一系列的动作放在一个链条中#xff0c;然后将该链条传递给服务器。服务器接受到该链条后#xff0c;解析各个动作#xff0c;逐个执行。
TouchAction类支持的动…TouchAction操作 Appium的辅助类主要针对手势操作比如滑动、长按、拖动等。其原理是将一系列的动作放在一个链条中然后将该链条传递给服务器。服务器接受到该链条后解析各个动作逐个执行。
TouchAction类支持的动作很多;常用操作如下
1、press(self,elNone,xNone,yNone): 按压一个元素或坐标el为要点击的元素x/y为坐标 2、long_press(self,elNone,xNone,yNone,duration1000): 长按压一个元素或坐标默认长按时间1000ms 3、tap(self,elementNone,xNone,yNone,count1): 对一个元素或控件执行点击操作 4、move_to(self,elNone,xNone,yNone): 将指针从上一个点移动到指定的元素或点 5、wait(self,ms0): 等待时间单位毫秒 6、release(self): 释放,结束屏幕上的一系列动作的命令操作 7、perform(self): 执行将待执行的操作发送到服务器的命令操作
利用TouchAction类实现操作如下
一、利用TouchAction类实现点击操作
导入 from appium.webdriver.common.touch_action import TouchAction
代码示例 from appium import webdriver # 导入appium 驱动包
from appium.webdriver.webdriver import By # 导入appium 定位的方法包
from appium.webdriver.common.touch_action import TouchAction # 导入appium的TouchAction类
des {automationName:appium,platformName:Android,platformVersion:6.0.1, # 填写android虚拟机/真机的系统版本号deviceName:MuMu, # 填写安卓虚拟机/真机的设备名称appPackage:com.android.settings, # 填写被测app包名appActivity:.Settings, # 填写被测app的入口udid:127.0.0.1:7555, # 填写通过命令行 adb devices 查看到的udidnoReset:True, # 是否重置APPunicodeKeyboard:True, # 是否支持中文输入resetKeyboard:True, # 是否支持重置键盘newCommandTimeout:30 # 30秒没发送新命令就断开连接}driver webdriver.Remote(http://127.0.0.1:4723/wd/hub,des)el driver.find_element(By.XPATH,//android.widget.TextView[text显示])
# el.click()# 通过TouchAction类实现点击操作
TouchAction(driver).press(el).release().perform() # 链条指令 点击操作(同click效果一样) 二、长按操作
TouchAction(driver).long_press(el,None,None,10000).perform()
代码示例
# 长按 el元素 3秒
TouchAction(driver).long_press(elel,duration3000).perform()
注long_press 有个bug把元素作为参数会把该元素的bounds(该属性可以在ispector工具中查看)属性相加 /2得到x,y坐标但是x和y坐标可能出现小数情况因为坐标只能是整数所以会导致报错
解决方案
直接使用 long_press 的坐标进行操作通过元素的x,y坐标的 bounds 属性把元素坐标的 x相加 除以2 再把 y相加 除以2如果有小数就四舍五入
bounds 属性值为元素的左上角坐标和右下角坐标如下图 三、手势轨迹操作
TouchAction(driver).press(x211,y660).wait(100).move_to(x325,y0).wait(100).move_to(x0,y325).move_to(x0,y325).release().perform()
备注坐标采用相对值非绝对坐标值
代码示例通过点击并移动实现图案的手势操作 import time
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from appium.webdriver.webdriver import By
des {automationName:appium,platformName:Android,platformVersion:6.0.1, # 填写android虚拟机/真机的系统版本号deviceName:MuMu, # 填写安卓虚拟机/真机的设备名称appPackage:com.android.settings, # 填写被测app包名appActivity:.Settings, # 填写被测app的入口udid:127.0.0.1:7555, # 填写通过命令行 adb devices 查看到的udidnoReset:True, # 是否重置APPunicodeKeyboard:True, # 是否支持中文输入resetKeyboard:True, # 是否支持重置键盘newCommandTimeout:30 # 30秒没发送新命令就断开连接}driver webdriver.Remote(http://127.0.0.1:4723/wd/hub,des)driver.swipe(220,1872,220,1027,5000) # 从坐标1移动到坐标2 时间为5秒
time.sleep(2)
# 点击 安全 按钮
el_01 driver.find_element(By.XPATH,//android.widget.TextView[text安全])
touch_action TouchAction(driver)
touch_action.press(el_01).release().perform()
time.sleep(2)
# 点击 屏幕锁定方式 按钮
el_02 driver.find_element(By.XPATH,//android.widget.TextView[text屏幕锁定方式])
touch_action.press(el_02).release().perform()
time.sleep(2)
# 点击 图案 按钮
el_03 driver.find_element(By.XPATH,//android.widget.TextView[text图案])
touch_action.press(el_03).release().perform()
# 执行手势操作 图案坐标 190 705 / 564 708 / 565 1085 / 562 1457 / 937 1455 / 935 1085
touch_action (touch_action.press(x190,y705).wait(1000).move_to(x564,y708).wait(1000).move_to(x565,y1085).wait(1000).move_to(x562,y1457).wait(1000).move_to(x937,y1455).wait(1000).move_to(x935, y1085).release().perform()) 效果如下 自动化测试相关教程推荐 2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂_哔哩哔哩_bilibili 2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华学完年薪40W_哔哩哔哩_bilibili 测试开发相关教程推荐 2023全网最牛字节测试开发大佬现场教学从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili postman/jmeter/fiddler测试工具类教程推荐 讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程学jmeter接口测试一套教程就够了_哔哩哔哩_bilibili 2023自学fiddler抓包请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程_哔哩哔哩_bilibili 2023全网封神B站讲的最详细的Postman接口测试实战教学小白都能学会_哔哩哔哩_bilibili 总结 光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。 如果对你有帮助的话点个赞收个藏给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片博主也希望和志同道合的测试人员一起学习进步
在适当的年龄选择适当的岗位尽量去发挥好自己的优势。
我的自动化测试开发之路一路走来都离不每个阶段的计划因为自己喜欢规划和总结
测试开发视频教程、学习笔记领取传送门