起初:
- 带有Webdriver的Selenium 2.0
- 适用于IExplorer,Chrome和Firefox
- 当前的Webdriver和Selenium dll' s
- Windows 8.1
- Visual Studio 2013 C#
我会测试我的网站。页面将加载ajax。如果我要更改页面,它将显示一个加载div(div #wartenDialog)。现在我会在显示这个div之前等待,然后再转到下一页。
问题是,有时会出现一个小的延迟,直到显示加载div和快速计算机/互联网没有加载div。
我尝试过这个功能:
public static void WaitWhileElementVisible(RemoteWebDriver _driver, By _locator)
{
WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromMilliseconds(timeout));
wait.Until(drv => !Exists(drv, _locator));
}
private static bool Exists(IWebDriver _drv, By _locator)
{
return (ExpectedConditions.ElementIsVisible(_locator) != null);
}
现在它总是在Timeout中运行。
答案 0 :(得分:0)
等待元素可见的方法是正确的。但是对代码进行一些修改就可以了。
public static void WaitWhileElementVisible(RemoteWebDriver _driver, By _locator)
{
WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromMilliseconds(timeout));
wait.IgnoreExceptionTypes(typeof(WebDriverTimeoutException));
wait.Until(drv => !Exists(drv, _locator));
}
IgnoreExceptionTypes()
将忽略提供的异常类型。这段代码对我有用。
希望这可以解决您的问题。