20

I have the following code

browser.link(:text => 'Generate Report').click  
browser.radio(:value => 'byTotalValue').wait_until_present(180)  

which requests that a report be generated and then waits for the report by looking for an element on the report page. The report can take upwards of 2 minutes to appear.

What is happening is a Timeout::Error is being raised from the click method after 60 seconds. I suspect that Watir-Webdriver has implemented some form of wait for page load within the click method but I don't see a way to adjust the value.

Any help understanding this would be appreciated.

Chuck van der Linden
  • 6,660
  • 2
  • 28
  • 43
user1142012
  • 323
  • 1
  • 3
  • 7
  • I found the following discussion concerning internal timeouts for selenium. This seems to be my problem however when trying to use the code recommended to adjust the internal timeouts for watir-webdriver I get a "connection refused" exception from net/http.rb. – user1142012 Jan 26 '12 at 22:35
  • [see internal timeouts here](http://code.google.com/p/selenium/wiki/RubyBindings) – user1142012 Jan 26 '12 at 22:54

2 Answers2

58

I'd try upping the client timeout:

client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 180 # seconds – default is 60

b = Watir::Browser.new :firefox, :http_client => client
Alister Scott
  • 3,675
  • 24
  • 41
15

Update: This monkey patch has been merged into watir-webdriver and so will no longer be needed in watir-webdriver v0.6.5. You will be able to set the timeout using:

Watir.default_timeout = 90

from: Is it possible to globally increase Watir-Webdriver when_present wait time?

Community
  • 1
  • 1
daremkd
  • 8,244
  • 6
  • 40
  • 66
  • 7
    Just to be clear, the option to adjust the default timeout in Watir will not affect the client timeout that was the concern in this question. – titusfortner Dec 07 '14 at 20:33