2016-09-21 50 views
0

其他人問過這個問題,但有一些答案,但他們沒有澄清一個時刻。如果未立即找到元素,則隱式等待將等待指定的時間量,然後在等待指定的時間量後將運行錯誤。這是否意味着隱式等待會在第一秒鐘檢查元素,然後等待指定的時間並在最後一秒再次檢查?Selenium Webdriver Python - 隱含的等待我不清楚

我知道明確的等待輪詢每500毫秒的DOM。如果測試花費更長時間,隱式等待的實際用途是什麼?

回答

2

隱含等待是硒的內部。您在初始化時設定一次。然後,每次Web驅動程序試圖尋找一個元素時,它都會持續查找該elmemt(有一些輪詢),直到「隱式等待」計時器到期。如果找到該元素,則繼續執行,否則拋出異常NoSuchElement。所以它在第一秒發現它會從等待循環中出來,否則,如果它在最後一秒沒有找到元素,它將會引起懷疑。

顯式等待用於需要等待某個條件爲真的場景。例如元素的可見性。其範圍僅限於該特定通話。

有關更多詳細信息和示例,您可以查找Selenium documentation

0

在隱等待驅動程序的情況下,等待直到元素出現在DOM,但在同一時間,它並不能保證內容是可用的。可能未啓用元素(如按鈕單擊)或元素可能沒有定義此時的形狀。

就我們使用硒而言,我們對頁面上的所有元素都不感興趣。所有元素可能都沒有形狀。但是DOM中所有元素的存在對於讓其他元素正常工作很重要。所以隱含的等待。

使用任何元素時,我們使用顯式等待(WebDriverwait)或FluentWait。

相關問題