2013-08-21 319 views
4

我正在使用最新的Chrome和Webdriver 2.33,並且在IgnoreExceptionTypes中遇到了一些問題。在下面的代碼的webdriver等待像我希望如此,但它實際上並不會忽略例外:WebDriverWait不會忽略異常

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(8)); 
wait.IgnoreExceptionTypes(
    typeof(WebDriverTimeoutException), 
    typeof(NoSuchElementException) 
); 
wait.Until(ExpectedConditions.ElementIsVisible(By.XPath(firstResultX))); 

的代碼在一個try/catch,我試圖移動它的try/catch語句之外,並獲得同樣的問題。我不確定該從哪裏出發,任何幫助將不勝感激。

+0

檢查http://sqa.stackexchange.com/a/5096/5773 ...也許這會對你有所幫助 – Sankumarsingh

+0

感謝您的鏈接。我查了一下,看起來這個人有同樣的問題,我和他的問題沒有得到解決。重申這個問題是,儘管提供了正確類型的IgnoreExceptionTypes,但我的自動化仍然會引起我讓它忽略的錯誤。 – hhcib

+0

我剛剛結束了嘗試趕上wait.Until電話。同樣的事情,IgnoreExceptionTypes似乎什麼也不做,或者至少不是我所期望的。 – mrfreester

回答

0

您可以使用FluentWaits。

Wait<WebDriver> wait = new FluentWait<WebDriver>(getDriverInstance()) 
       .withTimeout(timeoutSeconds, TimeUnit.SECONDS) 
       .pollingEvery(sleepMilliSeconds, TimeUnit.SECONDS) 
       .ignoring(NoSuchElementException.class); 

wait.until(<Your expected condition clause.>); 

讓我知道如果這不能解決您的問題。