Selenium Webdriver C#element.Enabled在仍然禁用元素时评估为true

时间:2014-10-03 21:23:16

标签: c# selenium-webdriver

我的自动化测试用于顺利运行,但我们将QA环境移至另一台服务器,现在测试失败,因为它一直试图点击仍在加载和灰显/禁用的元素。以下是在以前的服务器上运行良好的代码的一部分:

while ( less than 7 seconds )
if (driver.FindElements(by).Count > 0)
{
      if (driver.FindElement(by).Enabled && driver.FindElement(by).Displayed)
            break;
}
else 
{ go back to while loop }

问题是driver.FindElement(by).Enabled一直在评估' true' (我在调试期间发现)当页面显然仍在加载并且整个页面仍然显示为灰色时,导致驱动程序继续尝试单击灰色元素,然后测试失败并出现异常。有没有人遇到过这种问题?我使用Webdriver与C#和NUnit,在IE中运行测试。感谢。

2 个答案:

答案 0 :(得分:3)

Enabled方法仅适用于输入元素和单选按钮。对于非输入元素,使用GetAttribute("禁用")。这将返回" true"如果禁用="禁用",如果仍然启用则为null。

答案 1 :(得分:2)

非常老的问题,但我仍然会以防万一。答案就在IWebElement.Enabled的帮助下。引用

  

除了以下所有内容外,Enabled属性通常都会返回true   明确禁用输入元素。