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'
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
.
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...
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*/
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 ')
Vous pouvez aussi essayer celui-ci:
Assert.assertTrue(driver.findElementById("Disable Element Id").isEnabled());
Cela a bien fonctionné dans mon cas.