테스트 케이스가 멈추고 "요소를 찾을 수 없음"오류가 발생합니다.셀레늄 IDE에서 테스트 케이스 실행을 재시작하는 방법
이제 내가하고 싶은 것은 페이지를 새로 고치고 처음부터 스크립트를 실행하는 셀렌 IDE입니다.
내가 알고 싶은 건, Selenium IDE에서 이런 일이 일어날 수있는 방법이 있는지입니다. 그렇다면 어떻게?
테스트 케이스가 멈추고 "요소를 찾을 수 없음"오류가 발생합니다.셀레늄 IDE에서 테스트 케이스 실행을 재시작하는 방법
이제 내가하고 싶은 것은 페이지를 새로 고치고 처음부터 스크립트를 실행하는 셀렌 IDE입니다.
내가 알고 싶은 건, Selenium IDE에서 이런 일이 일어날 수있는 방법이 있는지입니다. 그렇다면 어떻게?
물론입니다. 먼저 try-except-else
구조가 있어야합니다. 그런 다음 while True
루프가 있어야하고 루프 시작 부분부터 계속하기 위해 NoSuchElementException
을 지정하십시오. 이 except
블록의 첫 번째 줄에는 driver.refresh()
이라는 줄을 넣습니다. else
블록에서 break
루프를 차단하면 두 개의 블록이 있어야한다고 생각합니다. except
블록; 하나는 NoSuchElementException
이고 다른 하나는 다른 예외입니다. 두 번째로는 break
루프를 사용해야합니다. 다음은 샘플 코드는 다음과 같습니다
import selenium.common.exceptions as SeleniumExceptions
from selenium import webdriver
import sys
driver = webdriver.Firefox()
while True:
try:
element = driver.find_element_by_id('some_id')
# do whatever you want
except SeleniumExceptions.NoSuchElementException:
driver.refresh()
continue
except:
print sys.exc_info()
break
else:
break
EDIT1 :
가 특정 frame
또는 iframe
작업을해야하는 경우, 당신은 driver.switch_to_frame(driver.find_element_by_id('frame_id'))
로 다시 전환하고 작업을 계속하는 것을 고려; 또는 프레임이로드 될 때까지 기다려야한다고 생각하면 다음 코드를 사용할 수 있습니다.
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
WebDriverWait(driver, timeout=10).until(EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_id('frame_id')))
귀중한 답변을 보내 주셔서 감사합니다. 나는 그것을 바로 시도 할 것이다! – LeonarD
zeinab이게 webdriver 코드일지도 모릅니다. 그렇지 않습니까? SELENIUM IDE에서이 작업을 수행하고 싶습니다. 도움을받을 수 있습니까? – LeonarD
SELENIUM IDE는별로 작동하지 않았지만 어쩌면 길을 찾을 수 있습니다. 내가하면 알려 드리겠습니다. –