Appium自动化测试(三)之 TouchAction 操作

本文详细介绍了Appium中TouchAction类的各种手势操作方法,包括按压、长按、点击、移动及暂停等,并提供了示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

1、按压控件

方法:

  • press()

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

press(WebElement el, int x, int y)

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

例:

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

除了press()方法之外,本例中还用到了别外两个新方法。

  • release() 结束的行动取消屏幕上的指针。

  • Perform() 执行的操作发送到服务器的命令操作。

2、长按控件

方法:

  • longPress()

开始按压一个元素或坐标点(x,y)。 相比press()方法,longPress()多了一个入参,既然长按,得有按的时间吧。duration以毫秒为单位。1000表示按一秒钟。其用法与press()方法相同。

longPress(WebElement el, int x, int y, Duration duration)

例:

TouchAction action = new TouchAction(driver);
action.longPress(names.get(200),1000).perform().release();
action.longPress(200 ,200,1000).perform().release();
3、点击控件

方法:

  • tap()

对一个元素或控件执行点击操作。用法参考press()。

tap(WebElement el, int x, int y)

例:

TouchAction action = new TouchAction(driver);
action.tap(names.get(200)).perform().release();
action.tap(200 ,200).perform().release();
4、移动

方法:

  • moveTo()

将指针(光标)从过去指向指定的元素或点。

movTo(WebElement el, int x, int y)

其用法参考press()方法。

例:

TouchAction action = new TouchAction(driver);
action.moveTo(names.get(200)).perform().release();
action.moveTo(200 ,200).perform().release();
5、暂停

方法:

  • wait()

暂停脚本的执行,单位为毫秒。

action.wait(1000);
### Appium 自动化测试教程 #### 安装与配置环境 为了启动基于Appium自动化测试,需先安装并设置好必要的开发工具和依赖项。这包括但不限于Java Development Kit (JDK),Android SDK以及Node.js等基础组件。对于iOS设备而言,则需要Xcode及其附带的命令行工具。 #### 使用GUI Inspector辅助编写测试案例 借助于专门设计用于移动应用程序界面元素探索的应用程序——如GitHub上发布的`appium/appium-inspector`版本中的图形化检查器[^1],可以更直观地获取页面对象属性,从而简化定位控件的过程。 #### 编写Python脚本来控制移动端应用行为 通过导入特定模块来实现触摸动作模拟等功能,在此提供一段简单的代码片段展示如何利用`TouchAction`类完成点击操作: ```python from appium import webdriver from appium.webdriver.common.touch_action import TouchAction desired_caps = { 'platformName': 'Android', 'deviceName': 'emulator-5554', # 替换成实际连接设备名称或序列号 'appPackage': 'com.example.package.name', 'appActivity': '.MainActivity' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) element_to_click = driver.find_element_by_id("button_id") action = TouchAction(driver).tap(element_to_click).perform() ``` #### 解决常见错误提示 当尝试运行上述示例或其他形式的Appium Python客户端编写的测试用例时可能会遇到一些异常情况。例如,如果缺少正确初始化驱动实例所需的参数或者网络通信出现问题,则会抛出类似于下述的信息: > Message: An unknown server-side error occurred while processing the command. 针对此类情形,建议仔细核对配置文件内的各项设定是否准确无误,并确认目标平台已按照官方文档说明完成了相应准备工作;另外还需留意所使用的库版本之间是否存在兼容性差异等问题[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值