2014-01-21 39 views
1

我在我的網頁已經刷新與各種行動(重新加載,排序,過濾等)網格。每次應用其中一項操作時,微調器出現在網格前面,直到網格中的數據重新加載。微調器可能需要300到3000毫秒才能出現,微調器可能會在那裏停留幾秒鐘。在同樣的情況下,網格在沒有微調的情況下被重新加載,但無法預測它的外觀。有沒有什麼辦法可以用Explicit WebDriver Wait來等待那個微調而不會收到NoSuchElementException呢?如何等待網格執行微調與Java顯式WebDriver等待

+0

WebDriverWait背後的想法是在超時之前等待屏幕上出現一個元素。如果你的微調不可預測,並不總是出現,你可以嘗試解釋它並將其作爲錯誤條件處理,但我會嘗試找到更一致的不同元素,是否有另一個元素可以使用? –

回答

0

使用Firebug,檢查微調器的屬性。大多數時候他們有寬度/高度屬性。當顯示並顯示微調框時,您可以獲取該屬性值。然後您可以編寫邏輯來等待,直到屬性具有非顯示值。

+1

問題是它在啓動之前沒有顯示值。所以沒有辦法知道值是在「之前」還是「之後」出現 – mbeider

0

首先等待微調器出現,然後等待它消失。

在第一次等待時,您給它一個短暫的超時(可能是2秒,也許是10),但是如果超時,不要拋出任何異常。繼續前進(因爲它可能意味着微調器出現並消失的速度比硒能檢測到的要快)。

然後在第二次等待時,給它一個更長的超時時間,並在末端出現微調器時拋出異常。