Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I set the selenium webdriver get timeout?

When I am using a proxy in webdriver like FirefoxDriver, if the proxy is bad then the get method will block forever. I set some timeout parameters, but this did not work out.

This is my code:

FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("general.useragent.override", ua);     Proxy p = new Proxy(); p.setHttpProxy(proxy); profile.setProxyPreferences(p); profile.setEnableNativeEvents(true);  // create a driver WebDriver driver = new FirefoxDriver(profile); driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS); driver.get("www.sina.com.cn") 

The call to driver.get will block for ever, but I want it to wait for 30 seconds and if the page is not loaded then throw an exception.

like image 888
福气鱼 Avatar asked Mar 16 '12 03:03

福气鱼


1 Answers

Try this:

 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
like image 51
Fujiao Liu Avatar answered Sep 22 '22 09:09

Fujiao Liu