Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 水豚填充HTML5输入范围_Ruby On Rails_Html_Rspec_Capybara - Fatal编程技术网

Ruby on rails 水豚填充HTML5输入范围

Ruby on rails 水豚填充HTML5输入范围,ruby-on-rails,html,rspec,capybara,Ruby On Rails,Html,Rspec,Capybara,我正在使用新的HTML5输入类型范围实现一个基本滑块。 不涉及javascript或CSS 这里有一个例子 它曾经是一个文本框,所以在水豚岛我只能说 fill_in "rating_scale", with: "57" 现在我需要一种方法来告诉它在范围内填充_,或者单击并移动范围的拇指 有人成功地做到了吗?我假设滑块使用的是Javascript,所以你需要一个驱动程序让水豚与Javascript交互,比如。这就是我最后做的 find(:xpath, "//input[@id='rating_s

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

这里有一个例子

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

fill_in "rating_scale", with: "57"
现在我需要一种方法来告诉它在范围内填充_,或者单击并移动范围的拇指


有人成功地做到了吗?

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

这就是我最后做的

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

这是一个水豚助手,可以根据其名称更改输入范围, 假设您使用:

def范围_选择(名称、值)
选择器=%-输入[type=range][name=\\\“{name}\\\\”]-
脚本=%-$(“#{selector}”).val(#{value})-
第页执行_脚本(脚本)
结束

如果您使用的是javascript RangeSloider(虽然它没有设置特定的值,但不幸的是,只是拖动了特定的量),那么有一种方法可以很好地实现这一点。

这不一定是一种很好的方法,但是您可以直接修改输入的值以伪造正在使用的值。如果这最终奏效,您应该将其设置为一个答案,以便其他人知道如何解决发生在他们身上的问题。如果您需要触发更改事件,则在调用
.set(57)
后,调用
.trigger('input')
。添加此评论是因为google不断提出此线程,我在这里尝试了所有操作,但从未成功过,因为我尝试测试通过更改滑块值(例如取消公告保存)触发的操作。
trigger('input')
对我来说不适用于phantomjs,unknown event
find(“.some css class”)。set(57).trigger('input')
在我的ReactJS组件中运行良好。它会导致
onChange()
事件侦听器实际触发js,而通过DOM api设置输入元素的值并不需要js。