2014-03-03 328 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(儘管它沒有設置一個具體的值不幸,只是拖動了一個特定的數量),它可以很好地工作。