2013-01-03 53 views
0

我試圖catch()超時異常,等待一段時間後才能看到一個webelement。 但java說超時例外是永遠不會拋出的。如何發現並捕獲和超時異常

以下方法等待某些(給定)時間的任何webelement。 即使經過一段時間,並且看不到web元素,Catch塊將被執行。''''

我想知道該方法是否由於僅有超時異常而失敗。所以,我試圖用它來捕捉它:

Catch(TimeoutException te). 

但Java說,這個異常是不可拋出的。

public boolean waitForElement(final String id, String[] resultsValues) 
throws Exception { 
boolean returnValue = false; 
try { 
returnValue = new WebDriverWait...... 
} 
catch(Exception e) 
{ 
System.out.println(e.toString()); 
} 
} 
+3

請包括郵件發生的地方和郵件的確切用詞。 (並且注意它是'catch',而不是'Catch'。) –

+1

(你是不是'import java.util.concurrent。*'或完全指定'java.util.concurrent.TimeoutException'?) –

+0

'TimeoutException '是可拋棄的。你可以在這裏看到http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/TimeoutException.html – kaysush

回答

3

WebDriverWait的方法until是拋出TimeoutException,而不是構造的方法。此外,請確保您試圖抓住WebDriver TimeoutException,而不是java.util.concurrent TimeoutException