2016-02-22 22 views
0

我有一個腳本訪問不同的網站。有時候,我會超時,回溯會拋出以下錯誤:在循環中重新加載腳本,如果超時python

Traceback (most recent call last): 
    File "C:\Python27\visitor.py", line 52, in <module> 
    wait.until(EC.presence_of_element_located((By.Selector, "theSelector"))) 
    File "C:\Python27\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until 
    raise TimeoutException(message, screen, stacktrace) 
TimeoutException: Message: 

我如何能識別這個錯誤,只是告訴腳本從如果發生這種情況從頭開始?我正在循環不同的方面,這發生在循環內。所以我只想從它墜毀的地方繼續。基本上重新加載網頁並執行命令。

+0

catch'TimeoutException'並在其中加上'continue'。 – idjaw

回答

0

這是通用的,你沒有提供代碼的任何例子

for url in ['http://example.com']: 
    try: 
     visit_site(url) 
    except TimeoutException: 
     pass 
0

絕對可以幫助你更多更多的信息(你的代碼!)。你也可以說你想從超時開始啓動腳本,然後你說你想從超時的地方重試。我不明白你爲什麼要重新運行腳本,所以我會提出一個解決方案,只需刷新網頁並再次嘗試。

我打算承擔一些事情。

首先,您設置driver=webdriver.somebrowser()
其次,您設置wait=WebDriverWait(driver, numberseconds)

我覺得這樣的事情可能會奏效,但可能會導致死循環,如果頁面從未負荷。

while True: #Could cause endless loop try: wait.until(EC.presence_of_element_located((By.Selector,"theSelector"))) except TimeoutException: driver.refresh() continue

第一次回答一個問題!