J'écris un test d'automatisation dans Selenium en utilisant Python. Un élément peut ou non être présent. J'essaie de le gérer avec le code ci-dessous, cela fonctionne lorsque l'élément est présent. Mais le script échoue lorsque l'élément n'est pas présent, je veux passer à la déclaration suivante si l'élément n'est pas présent.
try:
elem = driver.find_element_by_xpath(".//*[@id='SORM_TB_ACTION0']")
elem.click()
except nosuchelementexception:
pass
Erreur -
Selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element:{"method":"xpath","selector":".//*[@id='SORM_TB_ACTION0']"}
Vous pouvez voir si l'élément existe, puis cliquer dessus si c'est le cas. Pas besoin d'exceptions. Notez le pluriel "s" dans .find_elements_*
.
elem = driver.find_elements_by_xpath(".//*[@id='SORM_TB_ACTION0']")
if len(elem) > 0
elem[0].click()
N'importez-vous pas l'exception?
from Selenium.common.exceptions import NoSuchElementException
try:
elem = driver.find_element_by_xpath(".//*[@id='SORM_TB_ACTION0']")
elem.click()
except NoSuchElementException: #spelling error making this code not work as expected
pass
la façon dont vous le faites est très bien .. vous essayez juste de saisir la mauvaise exception. Il est nommé NoSuchElementException
pas nosuchelementexception
de Selenium.common.exceptions import NoSuchElementException a très bien fonctionné pour moi, a résolu le problème