可以使用mobile: shell
命令来模拟点击或触摸操作。具体实现方法如下:
找到需要操作的元素,使用getBoundingClientRect()
方法获取该元素的页面坐标。
将获取到的坐标传入以下代码中的x和y值。
使用以下代码执行模拟点击或触摸操作:
HashMap tapObject = new HashMap();
tapObject.put("x", x);
tapObject.put("y", y);
tapObject.put("tapCount", 1);
driver.executeScript("mobile: tap", tapObject);
注意:在使用mobile: shell
命令之前,需要在手机中安装好adb
工具,并在命令行中运行adb devices
确认设备已连接。
完整示例代码如下:
// 找到需要操作的元素
WebElement element = driver.findElement(By.id("element-id"));
// 获取元素页面坐标
Object rect = js.executeScript("return arguments[0].getBoundingClientRect();", element);
int x = ((Long)((JavascriptExecutor)driver).executeScript("return arguments[0].left;", rect)).intValue();
int y = ((Long)((JavascriptExecutor)driver).executeScript("return arguments[0].top;", rect)).intValue();
// 执行模拟点击或触摸操作
HashMap tapObject = new HashMap();
tapObject.put("x", x);
tapObject.put("y", y);
tapObject.put("tapCount", 1);
driver.executeScript("mobile: tap", tapObject);