3

I have a problem with the timeout time of the NoSuchElementException, it seem to be 30 seconds by default and I want to shorten it down. So I wrote something like this:

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

And I get this message:

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

So the first message is what I was hoping that the WebDriverWait would override the NoSuchElementException timeout but I still get the full 30 seconds. Anyway, what's the way to get rid of this?

BoltClock
  • 700,868
  • 160
  • 1,392
  • 1,356
user1593846
  • 734
  • 1
  • 15
  • 34

2 Answers2

3

Try some of these:

driver.manage().timeouts().implicitlyWait()
driver.manage().timeouts().setScriptTimeout()
stan
  • 984
  • 10
  • 15
  • hum implicitlyWait() actually worked, do u have any idea why the WebDriverWait method did not? – user1593846 Oct 10 '13 at 08:41
  • yes. WebDriverWait did not work because you are calling elementToBeClickable. I think might have wanted `wait.until(ExpectedConditions.not(ExpectedConditions.invisiblilityOfElementLocated(By.id("someid")));` – ddavison Oct 10 '13 at 14:25
2

Wait for 10 sec in Selenium WedDriver with Java:

For Implicit wait:

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

For Explicit wait:

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("someID")));
Ripon Al Wasim
  • 36,924
  • 42
  • 155
  • 176