首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何要求Selenium等待页面加载,然后检查URL?

如何要求Selenium等待页面加载,然后检查URL?
EN

Stack Overflow用户
提问于 2019-12-22 10:57:52
回答 1查看 172关注 0票数 0

我见过这个问题,它是wait + findElementBy的组合。但是,我的问题略有不同,因为在页面完全加载之后,我需要检查(而不是元素)。

我已经尝试过以下解决方案,但是--它不适合我的

代码语言:javascript
复制
public void checkCurrentURL(String expectedURL) {
    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); // 5 seconds delay to load the page
    String realURL = driver.getCurrentUrl();
    System.out.println("------------------------------------URL is: "+realURL);
    Assert.assertTrue(realURL.equals(expectedURL));

}

这是我的硒版本:

代码语言:javascript
复制
       <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.14.0</version>
        </dependency>

更新:当我使用以下方法时,感谢@Guy:

代码语言:javascript
复制
public void checkCurrentURL(String expectedURL) {

        new WebDriverWait(driver, 2).until(
                new ExpectedCondition<Boolean>() {
                    @Override
                    public Boolean apply(WebDriver d) {
                        return d.executeScript("return document.readyState").equals("complete");
                    }   
                }
            );

        String realURL = driver.getCurrentUrl();
        System.out.println("------------------------------------URL is: "+realURL);
        Assert.assertTrue(realURL.equals(expectedURL));

    }

它抱怨说:

代码语言:javascript
复制
The method until(Function<WebDriver,T>) in the type WebDriverWait is not applicable for the arguments ()

这是存储库

我将selnium更新为3.14.0,因为3.142.6对我不起作用。

EN

回答 1

Stack Overflow用户

发布于 2019-12-22 11:08:21

implicitlyWait用于配置搜索WebElement时的最大查找时间,这与此无关,从现在起将影响driver,而不仅仅是在方法范围内。

您可以使用WebDriverWait并检查document.readyState

代码语言:javascript
复制
new WebDriverWait(driver, pageLoadTimeout).until(
    new ExpectedCondition<Boolean>() {
        @Override
        public Boolean apply(WebDriver d) {
            return d.executeScript("return document.readyState").equals("complete");
        }   
    }
);

顺便说一句,3.4.0版已经相当老了(~2.5岁)。考虑更新版本3.142.6 (最新而不是alpha版本)。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59443603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档