2013-05-29 95 views
1

當我運行webdriver它運行得太快。Selenium - 減少findelement時間

webdriver在第一個出現之前正在移動next element

我可以讓webdriver變慢嗎?

謝謝!

+0

你能告訴我們一些代碼嗎? – Hemanth

+0

據我瞭解,roey_r希望類似的功能,像Selenium IDE有'速度控制'欄。 – TDHM

回答

2

如果您使用的是Java,你可以做的每一頁上隱含的等待發現here

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(); 

這是我用它這是一個很好的答案answer to waits with selenium