2014-03-04 4 views
0

테스트 케이스가 멈추고 "요소를 찾을 수 없음"오류가 발생합니다.셀레늄 IDE에서 테스트 케이스 실행을 재시작하는 방법

이제 내가하고 싶은 것은 페이지를 새로 고치고 처음부터 스크립트를 실행하는 셀렌 IDE입니다.

내가 알고 싶은 건, Selenium IDE에서 이런 일이 일어날 수있는 방법이 있는지입니다. 그렇다면 어떻게?

답변

0

물론입니다. 먼저 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'))) 
+0

귀중한 답변을 보내 주셔서 감사합니다. 나는 그것을 바로 시도 할 것이다! – LeonarD

+0

zeinab이게 webdriver 코드일지도 모릅니다. 그렇지 않습니까? SELENIUM IDE에서이 작업을 수행하고 싶습니다. 도움을받을 수 있습니까? – LeonarD

+0

SELENIUM IDE는별로 작동하지 않았지만 어쩌면 길을 찾을 수 있습니다. 내가하면 알려 드리겠습니다. –

관련 문제