如何验证Webdriver Python中是否启用和禁用了按钮?

时间:2014-05-06 14:56:08

标签: python selenium selenium-webdriver

我尝试在其他帖子中使用以下内容

driver.find_element_by_name("sub_activate").click().is_enabled()
但得到了这个错误:

AttributeError: 'NoneType' object has no attribute 'is_enabled'

6 个答案:

答案 0 :(得分:20)

您无需致电click()。只需找到元素并在其上调用is_enabled()

element = driver.find_element_by_name("sub_activate")
print element.is_enabled()

仅供参考,click()WebElement上的一种方法,它会返回None

答案 1 :(得分:3)

您正在is_enabled()结果(无)上致电click()

相反,你应首先获取元素,检查它是否is_enabled()然后尝试click()(如果这是你想要做的)。

webelement上的方法look at the docs

is_enabled()
    Whether the element is enabled.

click()
    Clicks the element.

例如:

elem = driver.find_element_by_id("myId")
if elem.is_enabled():
    elem.click()
else:
    pass # whatever logic to handle...

答案 2 :(得分:1)

IWebElement button = driver.FindElement(By.Id("ButtonId"));

Assert.AreEqual(false, button.Enabled); /*Validates whether the button is Disabled*/

Assert.AreEqual(true, button.Enabled); /*Validates whether the button is Enabled*/

答案 3 :(得分:0)

以下适用于我:

element = driver.find_element_by_name("sub_activate")
prop = element.get_property('disabled')
print (prop)

>>>> False

如果启用'element.get_property('enabled')

,则返回'true'

答案 4 :(得分:0)

您也可以尝试这个:

Assert.assertTrue(driver.findElementById("Disable Element Id").isEnabled());

在我的情况下它运作良好。

答案 5 :(得分:0)

    count   mean    
Chemical                                
C2  14.0    225.600000  
C4  12.0    190.222222

在上述方法中,您使用了click()方法。如果不使用它,则可以验证按钮是已禁用还是已启用。它返回一个布尔值。