如何单击不带';在Appium+中没有可点击的:真实状态;JAVA

如何单击不带';在Appium+中没有可点击的:真实状态;JAVA,java,android,appium,Java,Android,Appium,我正在为一个应用程序编写测试,我没有访问源代码的权限,我身边的人也没有。在某个时刻,我插入登录/密码信息,登录按钮变为绿色,我可以点击它。但是,我无法自动执行该操作,因为即使我可以点击屏幕上的按钮,其“clickable”属性仍然为假,除了“enabled”属性之外的所有其他属性都为假,即使按钮无法点击,该属性也始终为真。 我唯一能想到的就是在它变成绿色时单击它,但我不知道如何实现它,我认为这不是一个非常优雅的解决方案。 非常感谢您的帮助,在完成这部分之前,我无法进行其他测试 我使用UI Au

我正在为一个应用程序编写测试,我没有访问源代码的权限,我身边的人也没有。在某个时刻,我插入登录/密码信息,登录按钮变为绿色,我可以点击它。但是,我无法自动执行该操作,因为即使我可以点击屏幕上的按钮,其“clickable”属性仍然为假,除了“enabled”属性之外的所有其他属性都为假,即使按钮无法点击,该属性也始终为真。

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

我使用UI Automator Viewer查看按钮的不同状态,WebDriverWait/ExpectedConditions等待按钮可用。即使它从未启用“clickable”属性,我也尝试过使用ElementToEclickable和visibilityOfElementLocated,但没有成功

这就是我现在的处境

public void waitAndClick(字符串本地){
WebDriverWait wait=newwebdriverwait(getDriver(),20);
wait.until(ExpectedConditions.elementtobelickable(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();
List元素=(MobileElement)getDriver().findElement(By.xpath(local));
点位置=element.getLocation();
ITouchAction=newtouchAction(getDriver());
点击(location.x,location.y).perform();