Ruby on rails 水豚填充HTML5输入范围
我正在使用新的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
不涉及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 eventfind(“.some css class”)。set(57).trigger('input')
在我的ReactJS组件中运行良好。它会导致onChange()
事件侦听器实际触发js,而通过DOM api设置输入元素的值并不需要js。