2

我有一個NoSuchElementException超時時間的問題,它似乎默認爲30秒,我想縮短它。所以我寫了這樣的事情:Selenium WebDriver與Java NoSuchElementException超時

WebDriverWait wait = new WebDriverWait(driver, 10); 
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("someid"))); 
element.click(); 

,我得到這個消息:

org.openqa.selenium.TimeoutException: Timed out after 10 seconds waiting for element to be 
clickable: By.id: someid 

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 

Caused by: org.openqa.selenium.NoSuchElementException: Unable to locate element: 
{"method":"id","selector":"someid"} 
Command duration or timeout: 30.03 seconds 

所以第一個消息就是我希望的WebDriverWait將覆蓋NoSuchElementException異常超時,但我仍然得到充分30秒。無論如何,有什麼辦法擺脫這一點?

回答

3

嘗試下列:

driver.manage().timeouts().implicitlyWait() 
driver.manage().timeouts().setScriptTimeout() 
+0

哼隱含地Wait()實際上工作,你有什麼想法爲什麼WebDriverWait方法沒有? – user1593846

+0

不,我不知道 – stan

+0

是的。 WebDriverWait無法正常工作,因爲您在調用elementToBeClickable。我想可能要'wait.until(ExpectedConditions.not(ExpectedConditions.invisiblilityOfElementLocated(By.id(「someid」)));'' – sircapsalot

2

等待10秒,在硒WedDriver與Java:

隱式的等待:

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

對於顯式的等待:

WebDriverWait wait = new WebDriverWait(driver, 10); 
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("someID"))); 
相關問題