Java 隐式和显式等待会导致NoElementFound错误,但使用Thread.sleep(someDuration)会导致脚本无缝运行

Java 隐式和显式等待会导致NoElementFound错误,但使用Thread.sleep(someDuration)会导致脚本无缝运行,java,selenium-webdriver,webdriver,appium,appium-android,Java,Selenium Webdriver,Webdriver,Appium,Appium Android,我正在尝试自动化android应用程序,其中的用户流如下所示 单击登录>输入用户名>输入密码>单击下一步>登录页 在登录页上有一个覆盖屏幕,底部有4个导航按钮 在脚本中,我试图单击其中一个按钮。 我们已经有5秒的隐式等待和30秒的显式等待 当我尝试单击按钮时,我们调用了下面的方法: public void waitForPageToLoad(MobileElement id){ WebDriverWait wait = new WebDriverWait(driver, TIMEOUT_

我正在尝试自动化android应用程序,其中的用户流如下所示
单击登录>输入用户名>输入密码>单击下一步>登录页

在登录页上有一个覆盖屏幕,底部有4个导航按钮

在脚本中,我试图单击其中一个按钮。 我们已经有5秒的隐式等待和30秒的显式等待

当我尝试单击按钮时,我们调用了下面的方法:

public void waitForPageToLoad(MobileElement id){
    WebDriverWait wait = new WebDriverWait(driver, TIMEOUT_LONG);
    wait.until(ExpectedConditions.elementToBeClickable(id));
}
单击操作导致NoElementFound错误。 而如果我们把Thread.sleep()放进去,它就可以正常工作了

有什么东西我遗漏了吗?任何帮助都会很有帮助


已经尝试了不同的等待条件,如waitForElementToAppear、WaitForElementToVisible

什么是
id
?你能添加更多的代码吗?更新了代码片段。Id是从调用此函数的方法传递的MobileElement。(基本上是页面对象)