2012-01-26 8 views
18

Mam następujący kodJak mogę zmienić limity czasu wczytywania strony w Watir-Webdriver (timeout w metodzie .Kliknij)

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

która żąda, że ​​raport jest generowany, a następnie czeka na raport szukając element na stronie raportu. Wyświetlenie raportu może potrwać do 2 minut.

Co się dzieje to przekroczenie limitu czasu: Błąd jest podnoszony z metody kliknięcia po 60 sekundach. Podejrzewam, że Watir-Webdriver zaimplementował jakąś formę oczekiwania na wczytanie strony w metodzie kliknięcia, ale nie widzę sposobu na zmianę wartości.

Każda pomoc w zrozumieniu tego jest mile widziana.

+0

znalazłem następującą dyskusję dotyczącą wewnętrzne limity czasu dla selenu. To wydaje się być moim problemem, jednak przy próbie użycia kodu zalecanego w celu dostosowania wewnętrznych limitów czasu dla watir-webdrivera otrzymuję wyjątek "odmowy połączenia" z net/http.rb. – user1142012

+0

[patrz limity czasu wewnętrznego tutaj] (http://code.google.com/p/selenium/wiki/RubyBindings) – user1142012

Odpowiedz

54

bym spróbować upping czas oczekiwania klienta:

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

b = Watir::Browser.new :firefox, :http_client => client 
+1

Doskonały. Dziękuję Ci. – user1142012

+5

Świetna robota Alister, dałem ci 10 uplików, jeśli system pozwoliłby mi –

+1

genialny! Dokładnie to, czego szukałem kilka dni teraz .. –

11

Update: Ta poprawka małpa został włączony do Watir-webdriver i tak nie będą już potrzebne w Watir-webdriver v0.6.5. Będziesz mógł ustawić limit czasu przy użyciu:

Watir.default_timeout = 90

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

+5

Po prostu, aby wyjaśnić, opcja dostosowania domyślnego limitu czasu w Watir nie wpłynie na czas oczekiwania klienta, który był problemem w tym pytaniu. – titusfortner