이 글에서는 주로 PHPPython의 Selenium 예외 처리에 대해 소개합니다. 이제는 모든 사람과 공유합니다. 필요한 친구들이 참고할 수 있습니다.
자동 테스트를 실행하는 동안 If와 같은 오류/예외가 필연적으로 발생합니다. 테스트 스크립트가 해당 요소를 찾지 못하면 즉시 NoSuchElementException 예외가 발생합니다. 지금은 두려워하지 마세요. 테스트 스크립트나 테스트 환경에 뭔가 문제가 있는 것 같습니다! 그럼 어떻게 대처하느냐가 관건이겠죠? 일반적으로 로컬 문제만 있기 때문에 스크립트가 계속 실행되도록 하려면 try...Exception...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) here 메소드로 테스트 예외가 발생하면 브라우저 화면을 캡처하여 사용자 정의된 이미지 파일 이름으로 지정된 경로에 저장합니다(위 코드는 현재 경로입니다).
또 다른 예는 요소가 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)
작업 중 예외가 있으며 결과는 다음과 같습니다.
셀레늄의 일반적인 예외는 다음과 같습니다.
관련 권장 사항:
Python의 간단한 xlsxwriter 라이브러리 분석
Python의 for 루프 및 범위 내장 함수에 대한 심층적인 이해
위 내용은 Python의 Selenium 예외 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!