【发布时间】:2015-06-11 22:50:15
【问题描述】:
起初:
- 带有 Webdriver 的 Selenium 2.0
- 适用于 IExplorer、Chrome 和 Firefox
- 当前的 Webdriver 和 Selenium dll
- 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 中运行。
【问题讨论】:
-
您还应该显示相关的 HTML 以及如何使用参数调用
WaitWhileElementVisible。另外我不明白你为什么创建自定义的Exists方法,参数IWebDriver _drv根本没有使用。 -
_drv 是其他尝试的剩余部分。我曾使用 _drv.FindElement(_locator) 方法