Capybara fill_in用于HTML5输入范围

时间:2014-03-03 19:28:58

标签: ruby-on-rails html5 rspec capybara

我正在使用新的HTML5输入类型Range实现一个基本滑块 没有涉及javascript或CSS。

以下是HTML5 input-type Range

的示例

它曾经是一个文本框,所以在Capybara我可以说

fill_in "rating_scale", with: "57"

现在我需要一种方法告诉它填充范围或点击并移动范围的拇指。

有没有人成功完成这项工作?

4 个答案:

答案 0 :(得分:3)

这就是我最终做的......

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

答案 1 :(得分:1)

我假设滑块使用Javascript,因此您需要Capybara的驱动程序与Javascript交互,例如Poltergeist

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果你使用的是javascript rangelider,有一个monkey-patched drag_by implementation可以很好地解决这个问题(虽然它不会设置一个特定的值,但只是拖动特定的数量)。