我製作了一個使用Selenium Webdriver模塊瀏覽網站的機器人。不幸的是我注意到當腳本嘗試點擊一個按鈕時有時會停止。代碼很簡單。我嘗試點擊按鈕,如果我不能等一秒鐘再試一次。它可以工作,但在看似隨機的時間(有時在10分鐘後,有時在幾個小時後),它會在點擊按鈕後停止。防止掛起超時?
while 1:
try:
#Try to click the button
confirmButton = driver.find_element_by_name("confirm")
confirmButton.click()
#If we can't, wait a second and try again
except:
time.sleep(1)
我一直在想創造一些方法來檢測這一點,從而能夠超時目前試圖點擊,但我似乎無法弄清楚如何。單線程腳本,我不能使用簡單的日期時間技術,因爲它永遠不會運行該檢查,因爲它仍然在等待按鈕完成點擊。
編輯:有人問我怎麼知道它掛着,而不是無限期地重試。我做了一個測試,在那裏我爲每一行執行了一個數字打印,當發生掛起時,它不會執行任何低於confirmButton.click()
的行。我認爲這證明它是掛着的而不是無限期地重試。或者可能不是?
您沒有顯示與您對腳本的描述相對應的整個代碼。在你展示的代碼中沒有再嘗試。請編輯代碼,使其與您所描述的內容相符。另外,請說明你如何知道它是*懸掛*而不僅僅是*無限期地重試*。 – Louis
好的,我編輯了這篇文章。 –