我不相信ie.link(:id, "ctl00_ContentPlaceHolder1_BtnSearch").click
永遠不會拋出一個Timeout::Error
。這就是爲什麼rescue
塊永遠不會執行。
所引發的可能的例外是:
- 當你做
ie.link(:id, "ctl00_ContentPlaceHolder1_BtnSearch").click
和元素沒有被發現,會發生Watir::Exception::UnknownObjectException
。
- 當你做了
ie.link(:id, "ctl00_ContentPlaceHolder1_BtnSearch").when_present.click
並且在要求的時間範圍內找不到該元素時,Watir::Wait::TimeoutError
將發生。
您的救援可能需要捕捉其中一個例外情況。
begin
ie = Watir::Browser.new
ie.goto 'www.yourpage.com'
ie.link(:id, "ctl00_ContentPlaceHolder1_BtnSearch").click
rescue Watir::Exception::UnknownObjectException
puts "element not found"
ie.close
retry #open new browser and go to begin
end
或者,如果你是在元件上使用when_present
:
begin
ie = Watir::Browser.new
ie.goto 'www.yourpage.com'
ie.link(:id, "ctl00_ContentPlaceHolder1_BtnSearch").when_presentclick
rescue Watir::Wait::TimeoutError
puts "element did not appear in time"
ie.close
retry #open new browser and go to begin
end
「*我要關閉瀏覽器時超時錯誤出現*」你什麼呢?就像某人所在的瀏覽器一樣? _爲什麼_? – Cubic
我想要一個無限循環,如果超時發生。直到我有慾望output.after超時, 瀏覽器應該是關閉,然後再次打開新的瀏覽器。 並且這個過程應該重複直到需要輸出。 – unknownbits
我編輯了我的問題更清楚。 – unknownbits