由于 UI Automatorviewer 中的位置不正确,无法单击按钮

Unable to click on a button due to incorrect position in UI Automatorviewer

UI Automator Viewer

每当我使用下面的命令点击 Ok 按钮时,它点击的位置与指向 UI Automator viewer 的位置相同。 (截图)

我需要点击 Ok 按钮。

Driver.findElement(By.xpath("//android.widget.Button[@text='Ok']")).click();

首先,既然你有resource-id,最靠谱的就是用它来搜索:

driver.findElementById("confirm_button").click()

如果它仍然点击了错误的元素,您可能需要稍等片刻(以便加载弹出窗口)然后执行点击

你能试试吗:

Driver.findElement(By.xpath("//*[@class='android.widget.Button and @text='Ok']")).click();

您尝试过按坐标点击吗?

(Python代码)

myElement = driver.find_element_by_id('confirm_button')
x = myElement.location['x']
y = myElement.location['y']
touchAction.tap(None, x, y, 1).perform()

我在同时显示多个图层时遇到了同样的问题... 希望对你有帮助

更新

(Java代码)

WebElement myElement = driver.findElementById("confirm_button");
int x = myElement.getPosition().getX();
int y = myElement.getPosition().getY();
touchAction.tap(x, y).perform();

问题是当我尝试在注册页面上输入数据时,键盘打开,因此 UI Automator 屏幕截图给出了错误的按钮位置。所以我所做的是在单击注册按钮之前使用以下命令隐藏键盘。

Driver.navigate().back();
delay(3000);
Driver.findElement(By.id("btn_register_signup")).click();