【问题标题】:Capybara jQuery script works with Selenium driver but not PoltergeistCapybara jQuery 脚本适用于 Selenium 驱动程序,但不适用于 Poltergeist
【发布时间】:2014-10-31 06:27:42
【问题描述】:

我正在尝试通过在 Capybara RSpec 测试中执行一系列脚本来测试 jQuery 滑块。我的脚本执行以下操作:

  1. 抓住滑块手柄
  2. 滑动手柄
  3. 松开手柄

    execute_script("$('#PMPM-slider .ngrs-handle-min').trigger(jQuery.Event('mousedown', { clientX: 70, clientY: 77 }))")
    execute_script("$('#PMPM-slider .ngrs-handle-min').trigger(jQuery.Event('mousemove', { clientX: 100, clientY: 77 }))")
    execute_script("$('#PMPM-slider .ngrs-handle-min').trigger('mouseup')")
    

... 然后运行我的断言。此测试使用 Selenium Web 驱动程序运行并通过。不幸的是,出于性能原因,我们使用 Poltergeist 运行所有测试(在这种情况下,我们保留 Selenium 作为调试的一个选项)。出于某种原因,Poltergeist 没有响应这些脚本(我们正在使用 Capybara 截图 gem,我可以看到测试完成后滑块没有移动)。

有人知道为什么 Poltergeist 无法解释这些脚本吗?

【问题讨论】:

    标签: jquery rspec capybara poltergeist


    【解决方案1】:

    在这种情况下,Poltergeist 似乎使用触摸事件而不是点击。将“mousedown”、“mousemove”和“mouseup”分别切换为“touchstart”、“touchmove”和“touchend”可以解决问题。希望这对将来的其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 2017-04-07
      • 2011-12-30
      • 1970-01-01
      相关资源
      最近更新 更多