2014-03-03 29 views
3

我正在实现一个基本的滑块使用新的HTML5输入类型的范围。
没有涉及JavaScript或CSS。水豚fill_in为HTML5输入范围

下面是一个例子HTML5 input-type Range

它曾经是一个文本框,以便在水豚我只能说

fill_in "rating_scale", with: "57" 

现在我需要一种方法来告诉它FILL_IN范围或点击和移动范围的拇指。

有没有人做过这个成功?

+1

不一定是一个很好的方法来做到这一点,但你可以直接修改输入的值来伪装它被使用。 – MrDanA

+0

如果这样做结束了工作,您应该将其设置为答案,以便其他人知道如何解决问题,如果发生在他们身上。 – MrDanA

回答

1

我假设滑块使用的是Javascript,所以你需要一个水豚的驱动来与Javascript交互,比如Poltergeist

+0

js不需要通过DOM api设置输入元素的值。 – ybakos

3

这就是我最后做...

find(:xpath, "//input[@id='rating_scale']").set 57 
+2

如果你需要触发change事件,那么在调用'.set(57)'后,调用'.trigger('input')'。添加这条评论是因为谷歌不断提出这个线程,而我在这里尝试了一切,但它从来没有工作,因为我试图测试通过更改滑块值(例如去抖保存)触发的操作。 – Daniel

+0

'触发器('输入')'不适合我phantomjs,说_unknown event_ – RocketR

0

这里是一个水豚帮手改变基于它的名字, 输入范围假设你使用Poltergeist def range_select(name, value) selector = %-input[type=range][name=\\"#{name}\\"]- script = %-$("#{selector}").val(#{value})- page.execute_script(script) end

0

有一个monkey-patched drag_by implementation如果你正在使用javascript rangeslider(尽管它没有设置一个具体的值不幸,只是拖动了一个特定的数量),它可以很好地工作。