9

次のコードを実行してスライダー ハンドルを移動することはできますが、ブラウザーでトリガーされたイベントが発生しません。

page.execute_script(%Q($('#slider_handicap').slider('values',1,30)))

これで右ハンドルが正しく 30 に設定されますが、実際にマウスを持ってハンドルを 30 にドラッグしてから放したかのように動作させる必要があります。

4

2 に答える 2

12

以前、カピバラ引きずりを延長しました。
指定されたオフセットで要素を移動できます。

あなたは試すことができます

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)

ただし、スライダーのスケールに合わない場合があります。

オリジナルは

いくつかの注意事項があります。

  • この拡張子は、ドライバーの種類とドライバーのバージョンによって異なります。
  • この種の引きずるテストは、メンテナンスの困難につながる可能性があります。
于 2012-06-03T08:18:21.823 に答える