Così, abbiamo il seguente codice nella nostra pagina:Un modo per aggirare elemento non è possibile scorrere in vista - Watir-WebDriver con Ruby
<div class="toggle-wrapper">
<input id="HasRegistration_true" class="registration_required toggle" type="radio" value="True" name="HasRegistration" data-val-required="The HasRegistration field is required." data-val="true">
<label for="HasRegistration_true" class="">On</label>
<input id="HasRegistration_false" class="registration_required toggle" type="radio" value="False" name="HasRegistration" checked="checked">
<label class="checked" for="HasRegistration_false">Off</label>
</div>
sono questi 2 pulsanti di opzione. 'Acceso e spento'. 'Off' è il valore predefinito.
Utilizzando Watir-webdriver e Ruby, vogliamo selezionare il pulsante di opzione "On". Lo facciamo in questo modo:
browser.radio(:id => "HasRegistration_true").set
Ma così facendo, si ottiene il seguente errore:
`WebElement.clickElement': Element cannot be scrolled into view:[object HTMLInputElement] (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)
Sappiamo Selenio 2 scorre la pagina per l'elemento, quindi cercando di scorrere verso il basso è inutile. Utilizziamo sempre le versioni più recenti di watir-webdriver e ruby.
Non possiamo modificare l'HTML della pagina dal momento che siamo ingegneri del controllo qualità.
Non è stato possibile riprodurre il problema utilizzando una pagina con solo l'html fornito. C'è più della pagina richiesta per riprodurre il tuo problema? Quale browser hai provato (ovvero si verifica in tutti i browser)? Hai menzionato l'utilizzo dell'ultima gemma di watir-webdriver, ma hai anche assicurato che il selenio-webdriver sia aggiornato? –
Tu dici "Sappiamo che il selenio 2 scorre la pagina sull'elemento ..." Puoi approfondire questo? Come fai a saperlo? Lo stai vedendo accadere? –
C'è un sacco di cose Ajax sulla pagina? porzioni della pagina che vengono renderizzate dopo che il browser è stato "caricato" Il tuo problema potrebbe derivare dal tentativo di interagire con l'elemento prima che sia "pronto" o spostato in una posizione finale sulla pagina, in altre parole un problema di sincronizzazione. Potresti provare i comandi manualmente tramite IRB e vedere se funzionano, se lo fanno, di solito è segno di un problema di sincronizzazione –