使用显式等待并验证Hello world

时间:2017-02-22 03:55:03

标签: java selenium-webdriver explicit

我需要这样做 1. http://the-internet.herokuapp.com/dynamic_loading/1 2.使用显式等待30秒 3.单击开始按钮并验证Hello World!。

我编写了以下代码,但element.getText为null。

    driver.get("http://the-internet.herokuapp.com/dynamic_loading/1");
    WebDriverWait wait=new WebDriverWait(driver, 30);
    WebElement all=driver.findElement(By.xpath("//*[@id='start']/button"));
    all.click();
    WebElement element=wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='finish']/h4")));
    driver.findElement(By.xpath("//*[@id='finish']/h4"));
    String text=element.getText();
    System.out.println("hi:"+text);
    //assertEquals("Hello World!", text);

1 个答案:

答案 0 :(得分:1)

更改ExpectedConditions.presenceOfElementLocated

ExpectedConditions.visibilityOfElementLocated

当您使用presenceOfElementLocated时,它会检查DOM以查看它是否找到指定的元素,无论它的可见性是什么。因此,您发现文本为null,因为元素存在于DOM中但尚未可见。

另一方面,visibilityOfElementLocated检查指定的元素是否可用且可见。