這不是重複的,因爲我已經閱讀了與此有關的其他問題,但它沒有給我我正在尋找的答案。如何在獲取元素之前等待頁面加載?
我在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」); –