2013-04-30 20 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

相关问题