java - 如何在获取元素之前等待页面加载?

标签 java selenium

这不是重复的,因为我已经阅读了与此相关的其他问题,但它没有给我我正在寻找的答案。

我正在使用 Selenium 在 Java 中实现 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("aaa@aa.a");
        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();
        }
}

这仍然会给我一个错误,因为它正在搜索仍然不存在的元素。

最佳答案

您还可以等待,直到所需的元素出现、可见、可点击......

waitFor(ExpectedConditions.presenceOfElementLocated(By.id("yourMailInputId")));

关于java - 如何在获取元素之前等待页面加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37203068/

相关文章:

java - 如何正确等待下一秒刻度

java - Java 如何计算 ArrayList 中的匹配元素

java - 有没有办法获取调用第二个方法的源类/方法的名称?

java - Java 中的循环链表

java - logback 在 appender 中打印完整的 MDC

c# - 如何从 Coypu 获取 Selenium IWebDriver 和 IWebElement?

java - 我可以同时在不同端口上运行selenium服务器吗?

java - webdriver 有哪些不同的 chromeoptions

java - 尝试使用 Selenium WebDriver for Java 从 HTML 表获取数据

python - 当 implicitly_wait 不起作用时使用 find_element_by_link_text 的 NoSuchElement 异常?