2014-02-25 96 views
2

我使用下面的代碼from here(C#版本):硒顯式等待設置自定義通話間隔?

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
IWebElement myDynamicElement = wait.Until<IWebElement>((d) => 
    { 
     return d.FindElement(By.Id("someDynamicElement")); 
    }); 

該段下面的文件說:

WebDriverWait默認調用ExpectedCondition每500毫秒,直到它成功返回。

如何代碼在這裏進行修改,以包括不同的等待時間,例如10毫秒?

回答

3

DefaultWait有輪詢間隔。

DefaultWait<IWebDriver> wait = new DefaultWait(driver); 
wait.PollingInterval = TimeSpan.FromMilliseconds(10); 
+0

能否請您包括'FindElement(By.Id( 「someDynamicElement」));'部分,如圖我的原始樣品中?我可能做錯了什麼,但我得到的錯誤使用泛型類型'OpenQA.Selenium.Support.UI.DefaultWait '需要1個類型參數'當我用代碼中的第1行替換你的代碼。我嘗試了幾件事,但我還沒有足夠先進的知道如何解決這個問題。 – Keavon

+0

@Keavon,您是否嘗試過[MatthewThomasGB](https://stackoverflow.com/users/4638372/matthewthomasgb)的答案?給定的答案應該刪除錯誤,因爲'WebDriverWait'類不使用泛型 –

+0

@ dey.shin我還沒有嘗試過,因爲這個項目很久以前就結束了。 – Keavon

3

可以爲WebDriverWait的特定實例的輪詢間隔,下面的代碼將等待20秒鐘來定位元件和輪詢每200毫秒。

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20)); 

wait.PollingInterval = TimeSpan.FromMilliseconds(200); 

IWebElement myDynamicElement = wait.Until<IWebElement>((d) => 
{ 
return d.FindElement(By.Id("someDynamicElement")); 
});