【Appium】手机滑动swipe方法及如何进行坐标定位

本文详细介绍了在Appium自动化测试中如何进行滑动操作,包括driver.swipe方法的使用以及坐标确定的方法。通过实例代码展示了从右往左和从左往右滑动的语法,并提供了两种工具——uiautomatorviewer和AppiumInspector,用于在模拟器上获取页面元素的坐标,以便更准确地执行滑动操作。

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

前言:当页面元素不在手机屏幕范围内时,我们需要先滑动屏幕直到元素出现在屏幕范围内。

目录

🍁swipe方法

🍁如何确定坐标


🍁swipe方法

滑动方法很简单,一句代码就解决了,方法是driver.swipe(x,y, x,y),如下:

driver.swipe(start_x: int, start_y: int, end_x: int, end_y: int) # 开始坐标 x,y 结束坐标 x,y

# 举例:driver.swipe(1400, 2200, 10, 2200)  从右往左
# 举例:driver.swipe(10, 2200, 1400, 2200)  从左往右

注意

  1. 坐标是当正面竖起平放手机后,向右为X轴向下为Y轴
  2. 当从右往左滑动时,右边应该为起始坐标,Y轴坐标不变
  3. 当从下往上滑动时,下面应该为起始坐标,X轴坐标不变

🍁如何确定坐标

真机定位坐标请参考我的另一篇文章【Appium】采用滑动屏幕点掉弹窗及解决真机如何定位坐标的问题

模拟器的话有两个工具都能定位获取坐标。

第一种是安卓SDK tools文件夹下有个工具uiautomatorviewer.bat可以用来抓取页面元素,上面有坐标可以定位,如下图:

第二种是Appium附带的Appium Inspector工具,同样也可以获取坐标,如下图:

### Appium 中实现滑动操作的方法Appium 中,可以通过多种方式来实现滑动操作。以下是几种常见的方法及其对应的示例代码。 #### 使用 `swipe` 方法 `swipe` 是一种常用的方式来模拟屏幕上的滑动手势。它通过指定起始坐标、结束坐标以及持续时间来完成滑动动作[^1]。 ```java import io.appium.java_client.MobileBy; import org.openqa.selenium.By; // 定义滑动参数 int startX = 500; // 起始X坐标 int startY = 1500; // 起始Y坐标 int endX = 500; // 结束X坐标 int endY = 500; // 结束Y坐标 int duration = 2000; // 持续时间为2秒 driver.swipe(startX, startY, endX, endY, duration); ``` #### 使用 `TouchAction` 类 `TouchAction` 提供了一种更灵活的方式来进行手势操作,包括滑动。这种方法适用于 Android 和 iOS 平台[^2]。 ```java import io.appium.java_client.TouchAction; import io.appium.java_client.touch.offset.PointOption; TouchAction touchAction = new TouchAction(driver); touchAction.press(PointOption.point(500, 1500)) .waitAction(WaitOptions.waitOptions(Duration.ofMillis(2000))) .moveTo(PointOption.point(500, 500)) .release() .perform(); ``` #### 针对 iOS 的特殊处理 对于某些版本的 iOS 模拟器(如 iOS 7.x),可能存在无法识别滚动视图的手势问题。在这种情况下,可以尝试使用替代函数 `scroll` 来解决此问题。 ```java driver.executeScript("mobile: scroll", ImmutableMap.of( "direction", "down" )); ``` 以上代码片段展示了如何针对不同平台和场景执行滑动操作。具体实现可能因设备类型或应用特性而有所不同,请根据实际需求调整参数设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BetterFate!

爱你哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值