首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebDriver退出

WebDriver退出
EN

Stack Overflow用户
提问于 2012-12-18 20:46:24
回答 5查看 1.2K关注 0票数 0

我遇到了Selenium WebDriver在仅执行一次后退出for循环的问题。大概是获取内容和加载页面之前开始循环的问题。有没有可能让webdriver等待页面加载?

代码语言:javascript
复制
List<WebElement> albums = new ArrayList<WebElement>();
    albums = driver.findElements(By.className("album_title"));

    for (WebElement we : albums) {

        we.click();
        if (driver.findElement(By.id("delete_album_prompt")).isDisplayed()) {
            driver.findElement(By.id("delete_album_prompt")).click();
            driver.findElement(By.id("delete_album_yes")).click();
        } else {
            break;
        }

    }
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-12-18 22:36:00

您可以使用Thread.sleep(20000);在循环开始之前使用此方法。

票数 0
EN

Stack Overflow用户

发布于 2012-12-18 20:59:33

您需要等待一个元素被加载。

Selenium documentation中,它们提供了以下示例,该示例将等待谷歌页面加载。在本例中,它最多等待10秒,等待title元素加载并具有指定值。

代码语言:javascript
复制
// Google's search is rendered dynamically with JavaScript.
// Wait for the page to load, timeout after 10 seconds
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
    public Boolean apply(WebDriver d) {
       return d.getTitle().toLowerCase().startsWith("cheese!");
    }
});
票数 1
EN

Stack Overflow用户

发布于 2013-06-12 13:29:41

使用此选项,其中TimeOut被定义为int值。

代码语言:javascript
复制
Wait wait = DriverManager.getWait(Driver.TIMEOUT);
wait.until(ExpectedConditions.visibilityOfElementLocated(by));

基本上是等待一个元素被加载。这比提供睡眠要好。

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

https://stackoverflow.com/questions/13933359

复制
相关文章

相似问题

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