【发布时间】:2017-03-07 18:39:04
【问题描述】:
我正在编写一个测试,我想验证一个元素是否不存在于页面上(显示或以其他方式显示)。我在各种文章(如this one)中阅读过如何使用是否为空的列表进行元素检测。这对于验证元素是否存在的相反测试非常有效。但是,当该元素不存在时,我在 60 秒的旋转后始终收到 WebDriverException 超时:See screenshot here
元素检测函数是这样的:
public bool isButtonPresent(string buttonType)
{
switch (buttonType)
{
case "Button 1":
return !(Driver.FindElements(By.Id("Button 1 ID Here")).Count == 0);
case "Button 2":
return !(Driver.FindElements(By.Id("Button 2 ID Here")).Count == 0);
case "Button 3":
return !(Driver.FindElements(By.Id("Button 3 ID Here")).Count == 0);
}
return false;
}
感谢您的宝贵时间!
【问题讨论】:
-
顺便说一句,我正在运行 Selenium 2.53.1
-
似乎激活了隐式等待。打电话之前先关掉
FindElements:driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromMilliseconds(0)); -
这就像一个魅力弗洛伦特,谢谢!如果您可以将此解决方案放在答案中,我很乐意对其进行标记。此外,如果您对它的工作原理有更详细的解释,那将非常适合我和其他未来的观众。
-
我认为某些代码破坏了功能。我在这里遇到了类似的问题stackoverflow.com/questions/31437515/…
标签: c# selenium selenium-webdriver