2013-04-30 24 views
5

Ho un dispositivo di scorrimento che utilizza html5 su un input ad es.Come utilizzare il selenio per modificare il valore di un input [type = 'range']

<input id="sliderWidget" title="Slide me" type="range" min="1" max="1.6" step="0.3" value="1.3"> 

Ho cercato di usare il selenio per cambiare il dispositivo di scorrimento, ma tradizionali controlli di scorrimento di immagini non stanno lavorando per me .... per esempio

Action dragAndDrop = builder.dragAndDropBy(sliderWidget,0,30).build(); 
dragAndDrop.perform(); 

Qualcuno ha qualche idea come posso eseguire questa modifica gamma incrementale

grazie in anticipo

risposta

1

È possibile impostare il valore diretto in JavaScript:

WebElement slider = webDriver.findElement(By.id("sliderWidget")); 
System.out.println(slider.getAttribute("value")); 

JavascriptExecutor js = (JavascriptExecutor) webDriver; 
js.executeScript("javascript:document.getElementById(\"sliderWidget\").value=1.5;"); 

System.out.println(slider.getAttribute("value")); 

noti che sliderWidget era impostato su 1,5 ma il risultato era 1.6. In questo modo è possibile verificare che step=0.3 funzioni correttamente.

+1

Questo non è un test realistico. Funzionerà anche se l'elemento è inaccessibile. E, ancora più importante, non attiva i gestori di modifiche su ''. –

-1

Ho trovato il modo più stabile e cross-browser è quello di eseguire una ricerca binaria, trascinando il mouse sul pollice del cursore fino a colpire il punto.

devo codice Python/WebDriver per questo nel mio blog: http://blog.usetrace.com/?p=279

+0

Questo è probabilmente il modo più realistico per farlo. Ma è praticamente una risposta solo per link. Certamente non sarei in grado di capirlo senza seguire il link. –

6

è possibile selezionare l'elemento e utilizzare il metodo send_keys per inviarlo i tasti freccia destra/sinistra (che dovrebbe aumentare/diminuire l'input). In Python:

from selenium.webdriver.common.keys import Keys 
... 
slider = page.find_element_by_id("sliderWidget") 
for i in range(10): 
    slider.send_keys(Keys.RIGHT) 

Questo dovrebbe incrementare il valore di 10.

+0

Non funziona in Java. : / – maxx777

Problemi correlati