2012-01-26 4 views
18

ho il seguente codiceCome faccio a cambiare i timeout di caricamento delle pagine in Watir-WebDriver (timeout nel metodo .Click)

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

che richiede che un report generato e quindi attende il rapporto con la ricerca di un elemento nella pagina del report. Il rapporto può richiedere fino a 2 minuti per essere visualizzato.

Che cosa sta succedendo è un timeout :: Errore viene sollevato dal metodo di clic dopo 60 secondi. Sospetto che Watir-Webdriver abbia implementato qualche forma di attesa per il caricamento della pagina all'interno del metodo click, ma non vedo un modo per regolare il valore.

Qualsiasi aiuto per capire questo sarebbe apprezzato.

+0

ho trovato la seguente discussione riguardante i timeout interni per il selenio. Questo sembra essere il mio problema, tuttavia, quando si tenta di utilizzare il codice consigliato per regolare i timeout interni per watir-webdriver ottengo un'eccezione "connessione rifiutata" da net/http.rb. – user1142012

+0

[vedi timeout interni qui] (http://code.google.com/p/selenium/wiki/RubyBindings) – user1142012

risposta

54

mi piacerebbe provare aumentando il timeout client:

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

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

Eccellente. Grazie. – user1142012

+5

Ottimo lavoro Alister, ti ho dato 10 upclicks per quello se il sistema mi avesse lasciato –

+1

geniale! Esattamente quello che stavo cercando da un paio di giorni. –

11

Aggiornamento: Questa patch scimmia è stata fusa per incorporazione in watir-WebDriver e così non sarà più necessario in watir-WebDriver v0.6.5. Sarete in grado di impostare il timeout utilizzando:

Watir.default_timeout = 90

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

+5

Giusto per essere chiari, l'opzione per regolare il timeout predefinito in Watir non influirà sul timeout del client che era la preoccupazione in questa domanda. – titusfortner