Python 의 Selenium 이상 처리 인 스 턴 스 코드

3127 단어 python예외 처리
자동화 테스트 를 실행 하 는 과정 에서 오류/이상 이 발생 할 수 있 습 니 다.예 를 들 어 테스트 스 크 립 트 가 대응 하 는 요 소 를 발견 하지 못 하면 바로 NoSuchElement Exception 이상 을 던 집 니 다.이 럴 때 두려워 하지 마 세 요.테스트 스 크 립 트 나 테스트 환경 이 잘못 되 었 을 거 예요!그럼 어떻게 처리 하 느 냐 가 관건 입 니까?일반적으로 부분 적 인 문제 만 있 기 때문에 스 크 립 트 를 계속 실행 시 키 기 위해 서 는 try...except..raise 로 이상 을 포착 할 수 있 습 니 다.이 캡 처 이상 후 이상 원인 을 분석 하기 위해 해당 하 는 이상 원인 을 인쇄 할 수 있다.
이상 을 던 진 후 콘 솔 에 정 보 를 인쇄 하고 현재 브 라 우 저 창 을 캡 처 하여 후속 bug 의 근거 로 해당 개발 자 에 게 포 지 셔 닝 문 제 를 잘 알 리 는 것 을 예 로 들 어 설명 한다.코드 는 다음 과 같 습 니 다:

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 에 내 장 된 캡 처 화면 을 사용 하여 저장 하 는 방법 이 있 습 니 다.예 를 들 어 savescreenshot(filename)방법 과 savescreenshot_as_file(filename)방법 은 이상 투 자 를 테스트 할 때 브 라 우 저 화면 을 캡 처 하고 사용자 정의 그림 파일 이름 으로 지정 한 경로(위 코드 는 현재 경로)에 저장 합 니 다.
또한 하나의 요소 가 DOM 에 나타 나 지만 보이 지 않 고 상호작용 을 할 수 없습니다.이상 은 던 집 니 다.바 이 두 홈 페이지 의 로그 인 을 예 로 들 면 요소 가 보이 지 않 을 때 Element NotVisibleException 의 이상 을 던 집 니 다.코드 는 다음 과 같 습 니 다.

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 의 Selenium 이상 처리 사례 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기