Selenium + Java等待元素可见

时间:2015-11-21 16:15:00

标签: java selenium

我是Selenium&的新手。 Java的。我想要完成的是等待一个元素出现超时,如果该元素在超时运行之前出现,那么就继续运行。下面的代码将给出TimeoutException并停止运行其余代码。

WebElement myDynamicElement = (new WebDriverWait(driver, 10))
    .until(ExpectedConditions.presenceOfElementLocated(By.id("my_element")));

3 个答案:

答案 0 :(得分:0)

请尝试这种方式:

public boolean isFind(WebElement my_element) {
   try{
      WebElement myDynamicElement = (new WebDriverWait(driver, 10))
    .until(ExpectedConditions.presenceOfElementLocated(By.id("my_element")));
   }
   catch(TimeoutException exception) {
        return false;
    }
   return true;
}

答案 1 :(得分:0)

感谢您的帮助,我花了一些时间来玩它。这是我提出的解决方案。希望它有助于下一个人。如果我搞砸了,请告诉我,再次感谢。

    try{
        WebDriverWait wait = new WebDriverWait(driver, 5);
        wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@id='signup_email']")));

    }catch (org.openqa.selenium.TimeoutException e){

        JOptionPane.showMessageDialog(null, "Login Complete!");
        return;

    }

答案 2 :(得分:-1)

您可以使用ExpectedConditions.visibilityOf

WebDriverWait wait = new WebDriverWait(d, 120);
wait.until(ExpectedConditions.visibilityOf(d.findElement(By.xpath("//input[@id='signup_email']"))));