Python での Selenium 例外処理

不言
リリース: 2018-05-04 15:49:23
オリジナル
2085 人が閲覧しました

この記事では主に 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 の time モジュールの深い理解

以上がPython での Selenium 例外処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート