9

我有一个在输入上使用 html5 的滑块,例如

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

我一直在尝试使用 selenium 来更改滑块,但传统的图像滑块控件对我不起作用....例如

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

有谁知道我如何执行这种增量范围更改

提前致谢

4

3 回答 3

12

您可以选择元素并使用 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。

于 2015-09-01T14:35:20.270 回答
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是否运行良好。

于 2013-05-01T14:51:34.537 回答
-1

我发现最稳定和跨浏览器的方法是执行二分搜索,将鼠标拖到滑块拇指上,直到找到位置。

我的博客中有 Python/webdriver 代码:http ://blog.usetrace.com/?p=279

于 2015-07-31T15:19:54.313 回答