web-dev-qa-db-fra.com

Selenium Python - Gestion Aucune exception de cet élément

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']"}
8
Santhosh

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()
8
JeffC

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
25
Levi Noecker

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

9
Corey Goldberg

de Selenium.common.exceptions import NoSuchElementException a très bien fonctionné pour moi, a résolu le problème

0
guigasque