我正在尝试自动化 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() 的方法:
这是 PointOption 文档,它是与 tap() 一起使用的新参数:
https://appium.github.io/java-client/io/appium/java_client/touch/offset/PointOption.html
因此,要回答您的问题,您可以通过 PointOption 进行两种选择:
- 使用 PointOption.point(x, y),它是具有这些坐标值的 PointOption 的静态实例
TouchAction touchAction = new TouchAction(driver);
touchAction.tap(PointOption.point(1280, 1013)).perform()
- 使用 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/