2013-04-30 48 views
5

我有一個滑塊,在輸入 上使用html5。如何使用硒來改變輸入的值[type ='range']

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

我一直在試圖用硒改變滑塊,但傳統的圖像滑塊控件不爲我工作....例如

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

沒有人有任何想法如何,我可以提前

回答

1

執行此增量範圍變化

感謝您能在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")); 

注意sliderWidget被設置爲1.5但結果是1.6。這樣你可以測試step=0.3運行良好。

+1

這不是一個實際的測試值。即使元素不可訪問,這也可以工作。更重要的是,它不會觸發''上的更改處理程序。 – 2015-10-27 14:00:14

-1

我發現最穩定和跨瀏覽器的方式是執行二進制搜索,將鼠標拖動到滑塊大拇指上,直到找到該點。

我對這個的Python/webdriver的代碼在我的博客:http://blog.usetrace.com/?p=279

+0

這可能是最現實的方法來做到這一點。但它幾乎只是一個鏈接的答案。如果沒有遵循鏈接,我當然無法弄清楚。 – 2015-10-27 14:03:10

6

您可以選擇的元素,並使用send_keys方法發送它的左/右箭頭鍵(這應該增/減輸入)。 在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) 

這應該通過遞增10.

+0

不適用於Java。 :/ – maxx777 2015-11-16 13:13:25

相關問題