我需要这样做 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);
答案 0 :(得分:1)
更改ExpectedConditions.presenceOfElementLocated
到
ExpectedConditions.visibilityOfElementLocated
当您使用presenceOfElementLocated
时,它会检查DOM以查看它是否找到指定的元素,无论它的可见性是什么。因此,您发现文本为null,因为元素存在于DOM中但尚未可见。
另一方面,visibilityOfElementLocated
检查指定的元素是否可用且可见。