2015-07-20 69 views
1

我想在我的頁面中找到一個元素。只有在應用程序出現任何錯誤時纔會出現該元素。我處理得非常好,唯一的問題是它等待30秒(隱式等待)轉移到下一步。我不想等待30秒,而是希望我的腳本能夠等待3秒鐘,然後才能進入下一步,所以我決定使用明確的等待時間。這裏是我的代碼明確的等待不起作用在硒webdriver

WebDriverWait wait = new WebDriverWait(driver, 3); 
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("errorelement"))); 

問題是,給了一個錯誤,並移動到下一步驟之前,硒的webdriver仍在等待該元素高達30秒。我試着用visibilityOfElementLocated選項,但它仍然無法正常工作。

我在這裏錯過了什麼嗎?

硒版本: - 2.46.0

瀏覽器: - Mozilla中,鉻

+0

你能與我們分享完整的代碼嗎?看起來你忘了從某處刪除30秒的等待。 – peetya

回答

2

我建議你到隱等待設置爲0,並且始終使用顯式的等待:

driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); 

這裏在這個話題上是一個很好的answer

+0

感謝您的回答。它幫助... – Naseem

1

如果您在使用相同的解決方案隱含的等待和明確的等待,你將不得不從seleniumhq文檔

警告的問題:不要混用隱性和顯性等待。這樣做會導致無法預測的等待時間。例如,設置10秒的隱式等待和15秒的顯式等待可能會導致20秒後發生超時。

+0

正是我在做什麼.....感謝迴應 – Naseem

相關問題