Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java等待元素在Selenium较新版本中可见?_Java_Selenium_Wait - Fatal编程技术网

如何使用Java等待元素在Selenium较新版本中可见?

如何使用Java等待元素在Selenium较新版本中可见?,java,selenium,wait,Java,Selenium,Wait,我最近开始学习Selenium,我编写了一个使用Selenium 3.2.2的简单代码,并等待加载电子邮件字段以填充它: WebDriverWait wait=new WebDriverWait(driver,25); WebElement login = driver.findElement(By.xpath("//*[@id=\"Login\"]/div/div/button[1]")); login.click();

我最近开始学习Selenium,我编写了一个使用Selenium 3.2.2的简单代码,并等待加载电子邮件字段以填充它:

     WebDriverWait wait=new WebDriverWait(driver,25);
    WebElement login = driver.findElement(By.xpath("//*[@id=\"Login\"]/div/div/button[1]"));
        login.click();
        wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"email\"]")));

我更新了一个新的Selenium版本,从那以后我就无法让它工作了-最后一行现在恢复了一个函数,我如何编写一个等待加载web元素的函数?谢谢

Iv发现“可见性”和“可点击”的预期条件不如这样做可靠:

Wait = new WebDriverWait(getDriver(), 15);

public WebElement waitUntilElementIsReady(By selector)
{
     WebElement element = null;
     Wait.until(d ->
     {
          element = d.findElement(selector));
          return element.isDisplayed();
     });

return getDriver().findElement(selector);
}
这几乎适用于所有场景,但有时您试图获取未显示的元素。这可能是为了获取某些信息或使用该元素查找另一个元素。我发现,如果应用程序中的元素具有唯一ID,则这种情况非常罕见。

或更新您的guava依赖项。