次のコードを実行してスライダー ハンドルを移動することはできますが、ブラウザーでトリガーされたイベントが発生しません。
page.execute_script(%Q($('#slider_handicap').slider('values',1,30)))
これで右ハンドルが正しく 30 に設定されますが、実際にマウスを持ってハンドルを 30 にドラッグしてから放したかのように動作させる必要があります。
次のコードを実行してスライダー ハンドルを移動することはできますが、ブラウザーでトリガーされたイベントが発生しません。
page.execute_script(%Q($('#slider_handicap').slider('values',1,30)))
これで右ハンドルが正しく 30 に設定されますが、実際にマウスを持ってハンドルを 30 にドラッグしてから放したかのように動作させる必要があります。
以前、カピバラ引きずりを延長しました。
指定されたオフセットで要素を移動できます。
あなたは試すことができます
module CapybaraExtension
def drag_by(right_by, down_by)
base.drag_by(right_by, down_by)
end
end
module CapybaraSeleniumExtension
def drag_by(right_by, down_by)
resynchronize { driver.browser.action.drag_and_drop_by(native, right_by, down_by).perform }
end
end
::Capybara::Selenium::Node.send :include, CapybaraSeleniumExtension
::Capybara::Node::Element.send :include, CapybaraExtension
その後
page.find('#slider_handicap').drag_by(30, 0)
ただし、スライダーのスケールに合わない場合があります。
オリジナルは
いくつかの注意事項があります。