Appium + Python 自动化学习之九:TouchAction连续滑动操作

TouchAction是Appium的辅助类,主要针对手势操作,比如滑动、长按、拖动等。针对最新版本(5.0.4)已不支持swipe等方法,所以可以用TouchAction类来封装成新的swipe方法。

1.press按压方法


开始按压一个元素或坐标点(x,y)。通过手指按压手机屏幕的某个位置。
格式:

press(self, el=None,  x=None, y=None)

press也可以接收屏幕的坐标(x,y)。

实例

TouchAction(driver).press(x=0,y=308).release().perform()

2.longPress长按方法


开始按压一个元素或坐标点(x,y)。 相比press()方法,longPress()多了一个入参duration,应为需要长按,所以须有一个按的时间。它以毫秒为单位。1000表示按一秒钟。其用法与上面的press()方法相同。
格式:

longPress(self, el=None, x=None, y=None, duration=1000)

实例:

TouchAction(driver).longPress(100,300,10000).release().perform()

3.tap点击方法


对一个元素或控件执行点击操作。
格式:

tap(self,el=None, x=None,  y=None,count=1)

实例:

TouchAction(driver).tap(200 ,200).perform().release(
在使用Appium进行自动化测试时,如果遇到`Swipe action cannot be performed`的错误提示,通常是因为滑动操作无法执行。这可能是由于以下几个原因: 1. **坐标错误**:滑动操作的起始坐标和结束坐标可能超出了屏幕范围。 2. **元素不可见**:如果滑动操作是基于某个元素进行的,该元素可能不可见或未加载完成。 3. **设备问题**:设备可能未正确连接或屏幕被锁定。 4. **Appium服务器问题**:Appium服务器可能未正确启动或配置。 以下是一些解决方法: 1. **检查坐标**:确保滑动操作的起始坐标和结束坐标在屏幕范围内。 2. **等待元素加载**:在执行滑动操作之前,确保相关元素已经加载完成。 3. **检查设备连接**:确保设备已正确连接并解锁。 4. **重启Appium服务器**:尝试重启Appium服务器。 示例代码: ```python from appium import webdriver from appium.webdriver.common.touch_action import TouchAction # 连接Appium服务器 desired_caps = { 'platformName': 'Android', 'deviceName': 'your_device_name', 'appPackage': 'your_app_package', 'appActivity': 'your_app_activity' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 等待元素加载 driver.implicitly_wait(10) # 获取元素 element = driver.find_element_by_id('your_element_id') # 初始化TouchAction action = TouchAction(driver) # 执行滑动操作 try: action.long_press(element).move_to(x=300, y=500).release().perform() except Exception as e: print(f"An error occurred: {e}") # 关闭驱动 driver.quit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值