この記事では主に PHPPython での Selenium の例外処理を紹介します。これには特定の参考値がありますので、必要な友達に参考にしてください。テスト スクリプトは対応する要素を見つけられない場合、すぐに NoSuchElementException 例外をスローします。現時点では心配する必要はありません。テスト スクリプトまたはテスト環境に何か問題があるはずです。では、どう対処するかが鍵となるのでしょうか?通常はローカルな問題のみが発生するため、スクリプトの実行を続行するには、try...excel...raise を使用して例外をキャッチします。例外をキャッチした後、対応する例外原因を出力できるため、例外原因の解析が容易になります。
以下に例を示します。例外がスローされると、情報がコンソールに表示され、現在のブラウザ ウィンドウがインターセプトされ、問題をより適切に特定するための後続のバグの基礎として使用されます。対応する開発者。コードは次のとおりです:
import unittest from selenium import webdriver from selenium.common.exceptions import NoSuchElementException #导入NoSuchElementException class ExceptionTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("https://www.baidu.com") def test_exception(self): driver = self.driver try: search_text = driver.find_element_by_id("ss") self.assertEqual('百度一下', search_text.get_attribute("value")) except NoSuchElementException: file_name = "no_such_element.png" #driver.save_screenshot(file_name) driver.get_screenshot_as_file(file_name) raise #抛出异常,注释后则不抛出异常 def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main(verbosity=2)
実行時に例外があり、結果は次のとおりです:
上記のコードは、WebDriver の組み込みメソッドを使用して画面をキャプチャし、保存します。 save_screenshot(filename) メソッドと save_screenshot_as_file(filename) ここのメソッドのように、テスト例外がスローされると、ブラウザ画面がキャプチャされ、カスタマイズされた画像ファイル名で指定されたパスに保存されます (上記のコードは現在のパスです)。
別の例としては、要素が DOM に表示されているが、非表示で操作できない場合、Baidu ホームページのログインを例にとると、要素を非表示にできない場合、ElementNotVisibleException がスローされます。例外がスローされる場合、コードは次のようになります:
import unittest from selenium import webdriver from selenium.common.exceptions import ElementNotVisibleException #导入ElementNotVisibleException class ExceptionTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("https://www.baidu.com") def test_exception(self): driver = self.driver try: login = driver.find_element_by_name("tj_login") login.click() except ElementNotVisibleException: raise def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main(verbosity=2)
操作中に例外があり、結果は次のようになります:
Selenium の一般的な例外を以下に示します。
関連する推奨事項:
Python のシンプルな xlsxwriter ライブラリ 分析Python の for ループと range 組み込み関数の深い理解
以上がPython での Selenium 例外処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。