2013-08-26 6 views
0

나는 url에서 파일을 다운로드하기 위해 python으로 셀레늄으로 작업 중이다.시간 재로드 및 셀레늄 재시도

from selenium import webdriver 

profile = webdriver.FirefoxProfile() 
profile.set_preference('browser.download.folderList', 2) # custom location 
profile.set_preference('browser.download.manager.showWhenStarting', False) 
profile.set_preference('browser.download.dir', '/tmp') 
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv') 
browser = webdriver.Firefox(profile) 
     try: 
     browser.get("http://www.drugcite.com/?q=ACTIMMUNE") 
     browser.find_element 

     browser.find_element_by_id('exportpt').click() 
     browser.find_element_by_id('exporthlgt').click() 
    except: 
     pass 

이 프로그램의 시간 제한을 설정하고 싶습니다. 수단,이 문제로 인해이 URL이로드되지 않은 경우 60 초 이내에 60 초마다 다시 시도하고 3 회 시도한 후에는 계속 진행해야합니다.

이 코드에서 어떻게 달성 할 수 있습니까?

감사

답변

1

이 작업을 수행하는 내장 아무것도 없다. 그러나, 나는 그것이 너무 어려울 것이라고 말하지 않았을 것이다.

을 사용하면 인 페이지가로드 될 때이어야합니다. 이 명시 적 대기 시간에서 60 초로 제한 시간을 설정하십시오.

루프를 최대 세 번 실행하십시오. 불필요하게 세 번 실행하지 않으려면 명시 적 대기가 실제로 문제없이 실행될 때 break 문을 넣습니다.

즉, 최대 세 번 실행되고 한 번에 60 초를 기다리고 성공하면 루프가 종료됩니다. 이 모두 인 경우 성공하지 못하면 충돌합니다.

참고 : 실제로는 을 사용하지 않았습니다.이 시도했지만 논리적 인 해결책 일뿐입니다!