miei due scenari -Combinando attesa implicita ed attesa esplicita insieme i risultati in tempi di attesa inaspettati
1) Prima
@driver.manage.timeouts.implicit_wait = 30
@wait = Selenium::WebDriver::Wait.new(:timeout => 45) # Time greater than implicit
@wait.until {@driver.find_element(:tag_name => "body").text.include?("hey")}
che dà al conducente 45 secondi per cercare il testo (che si prevede)
2) In secondo luogo
@driver.manage.timeouts.implicit_wait = 30
@wait = Selenium::WebDriver::Wait.new(:timeout => 5) # Time less than implicit
@wait.until {@driver.find_element(:tag_name => "body").text.include?("hey")}
questo ora offre al conducente 30 secondi per cercare il testo (non previsto)
C'è un modo per fare in modo che il selenio attenda solo il tempo di attesa explicit
e non per il maggiore dei due?
Nota: non dichiarare che il tempo di attesa implicito non è un'opzione, poiché non posso permettermi di lasciare che il selenio si blocchi ogni volta che il driver non è in grado di trovare qualcosa.
Utilizzando Selenio versione 30, le finestre, ff
'L'impostazione predefinita è 0' in base ai documenti di attesa impliciti, quindi qual è esattamente il problema qui? – phoet
Perché non impostare anche l'attesa implicita su 5? – BlackHatSamurai
L'attesa implicita mi aiuta a mantenere un'attesa predefinita su ogni singolo elemento, quindi non voglio mantenerla a partire da 5 secondi. Voglio usare un periodo di attesa più breve (ad esempio "wait_to_fail") per controllare gli elementi * non * presenti. – Amey