这不是重复的,因为我已经阅读了与此有关的其他问题,但它没有给我我正在寻找的答案。如何在获取元素之前等待页面加载?
我在Java中使用Selenium进行UI自动化。
我的代码是这样的:
WebDriver driver;
public MyClass()
{
UIEvents auto = new UIEvents();
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("my URL");
LoginPage loginPage = new LoginPage(driver, auto);
waitForPageLoad();
loginPage.setEmail("[email protected]");
loginPage.setPassword("1234");
loginPage.clickLogin();
}
public void waitForPageLoad()
{
JavascriptExecutor js = (JavascriptExecutor)driver;
final boolean response = js.executeScript("return document.readyState").equals("complete");
if(response == false)
{
waitForPageLoad();
}
}
这仍然会给我一个错误,因为它正在搜索仍然不存在的元素。
,响应变化真正的页面是在调试过程中,我可以看到加载完成。我运行我的应用程序时发生了我的问题。 –
此外,executeScript()中没有equalsIgnoreCase。 –
对不起,我添加了.toString()---> js.executeScript(“return document.readyState”)。toString()。equalsIgnoreCase(“complete”); –