1

当我运行它时,webdriver它运行得太快了。

在第一个出现之前webdriver正在移动。next element

我可以webdriver慢一点吗?

谢谢!

4

1 回答 1

2

如果您使用的是 java,您可以在此处找到的每个页面上进行隐式等待

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://somedomain/url_that_delays_loading");
WebElement myDynamicElement = driver.findElement(By.id("myDynamicElement"));

但更好的方法是使用流利的等待,等待一个元素出现在页面上,像这样

public WebElement fluentWait(final By locator){
    Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
            .withTimeout(30, TimeUnit.SECONDS)
            .pollingEvery(5, TimeUnit.SECONDS)
            .ignoring(NoSuchElementException.class);

    WebElement foo = wait.until(
    new Function<WebDriver, WebElement>() {
        public WebElement apply(WebDriver driver) {
                    return driver.findElement(locator);
            }
            }
      );
                       return  foo;              
   };

你可以使用它

WebElement element = fluentWait(By.id("name"));
element.click();

这是一个很好的答案,可以阅读硒等待的答案

于 2013-06-28T20:55:07.593 回答