web-dev-qa-db-ja.com

Selenium Python-そのような要素の例外を処理しない

Pythonを使用してSeleniumで自動化テストを書いています。 1つの要素が存在する場合と存在しない場合があります。私は以下のコードでそれを処理しようとしています、要素が存在するときに動作します。しかし、要素が存在しないとスクリプトが失敗します。要素が存在しない場合は、次のステートメントに進みます。

try:
       elem = driver.find_element_by_xpath(".//*[@id='SORM_TB_ACTION0']")
       elem.click()
except nosuchelementexception:
       pass

エラー-

Selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element:{"method":"xpath","selector":".//*[@id='SORM_TB_ACTION0']"}
8
Santhosh

要素が存在するかどうかを確認し、存在する場合はクリックします。例外は必要ありません。 .find_elements_*の複数の「s」に注意してください。

elem = driver.find_elements_by_xpath(".//*[@id='SORM_TB_ACTION0']")
if len(elem) > 0
    elem[0].click()
8
JeffC

例外をインポートしていませんか?

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

あなたがそれをやっている方法は素晴らしいです..あなたは間違った例外をキャッチしようとしているだけです。名前はNoSuchElementExceptionではなくnosuchelementexceptionです

9
Corey Goldberg

selenium.common.exceptionsより

0
guigasque