2014-02-25 97 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")); 
});