2013-04-30 19 views
5

Mam suwak, który używa html5 na wejściu np.Jak używać selenu do zmiany wartości wejścia [type = 'range']

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

I zostały próbuje użyć selen zmienić suwak, ale tradycyjne suwaków obraz nie pracują dla mnie .... np

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

Czy ktoś ma jakieś pomysły jak mogę wykonać tę zmiana przyrostowa Zakres

góry dzięki

Odpowiedz

1

Można ustawić wartość bezpośrednio w 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")); 

Uwaga, sliderWidget został ustawiony na 1,5, ale wynik był 1,6. W ten sposób możesz sprawdzić, czy step=0.3 działa dobrze.

+1

To nie jest realne testy. To zadziała, nawet jeśli element jest niedostępny. I co ważniejsze, nie uruchamia programów obsługi zmian na ''. –

-1

Stwierdziłem, że najbardziej stabilnym sposobem na przeglądanie w różnych przeglądarkach jest wykonanie wyszukiwania binarnego, przeciąganie myszą na kciuk suwaka, dopóki nie trafisz w miejsce.

Mam Pythona kod/webdriver za to w moim blogu: http://blog.usetrace.com/?p=279

+0

To prawdopodobnie najbardziej realistyczny sposób na zrobienie tego. Ale jest to odpowiedź tylko na link. Z pewnością nie byłbym w stanie tego obliczyć bez podążania za linkiem. –

6

Można wybrać element i użyć metody send_keys wysłać go klawiszy lewo strzałki w prawo/(który powinien zwiększyć/zmniejszyć wejście). W Pythonie:

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

To powinno zwiększyć wartość o 10.

+0

Nie działa w Javie. : / – maxx777

Powiązane problemy