java - Appium tap(int x, int y) 函数似乎已被弃用。有替补吗?

标签 java appium

我正在尝试自动化 Android 游戏,为此我使用 X、Y 坐标来点击按钮,因为通过 ID、Xpath 等识别元素对于游戏来说是不可能的。我正在使用 TouchAction tap(int x, int y) 方法(Appium 方法)来实现这一点。但不幸的是,这种方法 tap(int x, int y) 似乎已被弃用。替换它的其他选项看起来是 --> touchAction.tap(PointOptions tapOptions) 和 touchAction.tap(TapOptions tapOptions)。 touchAction.press 也是如此。

我触摸特定按钮的代码如下所示:

TouchAction touchAction = new TouchAction(driver);
touchAction.tap(1280, 1013).perform();

此处,X、Y 值是使用 Android 设备中的触摸点找到的 [开发者选项 > 显示指针位置]

谁能建议一种更好的方法来使用未弃用的方法来实现相同的目的?谢谢!

最佳答案

您可以在此处查看 TouchAction 文档:

https://appium.github.io/java-client/io/appium/java_client/TouchAction.html

这是替换您正在使用的 tap() 的方法:

https://appium.github.io/java-client/io/appium/java_client/TouchAction.html#tap-io.appium.java_client.touch.offset.PointOption-

这是 PointOption 文档,它是与 tap() 一起使用的新参数:

https://appium.github.io/java-client/io/appium/java_client/touch/offset/PointOption.html

因此,要回答您的问题,您可以通过 PointOption 进行两种选择:

  1. 使用 PointOption.point(x, y),它是具有这些坐标值的 PointOption 的静态实例

TouchAction touchAction = new TouchAction(driver);
touchAction.tap(PointOption.point(1280, 1013)).perform()

  1. 使用 PointOption().withCoordinates(x, y),在设置这些坐标值后返回对 PointOption 实例的引用

TouchAction touchAction = new TouchAction(driver);
touchAction.tap(new PointOption().withCoordinates(1280, 1013)).perform()

关于java - Appium tap(int x, int y) 函数似乎已被弃用。有替补吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49048841/

相关文章:

java - EAR/WAR 中的类加载

android - 无法启动 appium session

java - 如何解决在Android上运行appium驱动程序的问题

java - 测试NG : Test case is ignored

java - springApplicationAdminRegistrar : Invocation of init method failed: nested exception is javax. 管理.InstanceAlreadyExistsException

java - 如何根据 Java 列表中的重复获取前 N 个值

java - 搜索具有给定运算符的类对象的用法? [ eclipse ]

android - 在 Android 应用程序中使用 Appium 定位元素后如何水平滑动?

java - appium 中的 TouchAction 类要求提供诸如 <T extends TouchActions> 之类的参数,有人可以举例说明如何实例化它

java - Jenkins/Maven : Could not resolve default JAVA_HOME path, 构建失败