如何在 Appium+Java 中点击没有可点击:真实状态的按钮?



我正在为一个我无法访问源代码的应用程序编写测试,也没有人接近我。在某个时候,我插入登录名/密码信息,登录按钮变为绿色,我可以点击它。但是,我无法自动执行该操作,因为即使我可以点击屏幕上的按钮,它的"可单击"属性仍然是假的,除了"启用"之外的所有其他属性也是如此,这始终是正确的,即使按钮不可用点击。 UIAutomatorViewer 上的节点详细信息的屏幕截图

我唯一能想到的就是在它变成绿色时单击它,但我不知道如何实现它,而且我认为这不是一个非常优雅的解决方案。 感谢任何帮助,在完成这部分之前,我无法进行其他测试。

我正在使用UI自动操作查看器来查看按钮的不同状态,并使用WebDriverWait/ExpectConditions来等待按钮可用。即使它从未启用"可点击"属性,我也尝试使用elementToBeClickable和visibilityOfElementTLocation,但没有成功。

这就是我现在所处的位置。

public void waitAndClick(String local) {
WebDriverWait wait = new WebDriverWait(getDriver(), 20);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(local)));
getDriver().findElement(By.xpath(local)).click();
}

谢谢!

您可以获取元素位置,然后按坐标点击:

List<MobileElement> element = (MobileElement) getDriver().findElement(By.xpath(local));
Point location = element.getLocation();
ITouchAction action = new TouchAction(getDriver());
action.tap(location.x, location.y).perform();

最新更新