web-dev-qa-db-fra.com

Comment vérifier si un bouton est activé et désactivé dans Webdriver Python?

J'ai essayé d'utiliser les éléments suivants d'un autre message 

driver.find_element_by_name ("sub_activate"). click (). is_enabled ()
mais j'ai eu cette erreur:

AttributeError: l'objet 'NoneType' n'a pas d'attribut 'is_enabled'
7
L P

Vous n'avez pas besoin d'appeler click(). Il suffit de trouver l’élément et d’appeler is_enabled() dessus:

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

Pour votre information, click() est une méthode sur une WebElement, elle retourne None.

20
alecxe

Vous appelez is_enabled() sur le résultat click() (Aucun).

Au lieu de cela, vous devriez d’abord récupérer l’élément, vérifier s’il est is_enabled() puis essayer click() (si c’est ce que vous essayez de faire).

Regardez dans la documentation pour connaître les méthodes de la variable webelement.

is_enabled()
    Whether the element is enabled.

click()
    Clicks the element.

Par exemple:

elem = driver.find_element_by_id("myId")
if elem.is_enabled():
    elem.click()
else:
    pass # whatever logic to handle...
3
nerdwaller
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*/
1
user3748027

Ce qui suit fonctionne pour moi:

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

>>>> False

Renvoie 'true' si activé 'element.get_property (' enabled ')

0
Nisheeth

Vous pouvez aussi essayer celui-ci:

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

Cela a bien fonctionné dans mon cas.

0
Prarna Dhar