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']"}
要素が存在するかどうかを確認し、存在する場合はクリックします。例外は必要ありません。 .find_elements_*
の複数の「s」に注意してください。
elem = driver.find_elements_by_xpath(".//*[@id='SORM_TB_ACTION0']")
if len(elem) > 0
elem[0].click()
例外をインポートしていませんか?
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
あなたがそれをやっている方法は素晴らしいです..あなたは間違った例外をキャッチしようとしているだけです。名前はNoSuchElementException
ではなくnosuchelementexception
です
selenium.common.exceptionsより