Скрипт Capybara jQuery работает с драйвером Selenium, но не с Полтергейстом

Я пытаюсь протестировать слайдер jQuery, выполнив серию сценариев в моем тесте Capybara RSpec. Мои скрипты делают следующее:

  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. К сожалению, из-за соображений производительности мы запускаем все наши тесты с использованием полтергейста (в таких случаях мы оставили Selenium в качестве опции для отладки). По какой-то причине Полтергейст не отвечает на эти скрипты (мы используем гем скриншота Capybara, и я вижу, что ползунок не двигался, когда тест закончился).

Кто-нибудь знает какую-либо причину, связанную с синтаксисом, конфигурацией или иным образом, почему Полтергейст не может интерпретировать эти сценарии?


person jprince    schedule 30.10.2014    source источник


Ответы (1)


Кажется, что Полтергейст в этом случае использует сенсорные события вместо щелчка. Переключение «mousedown», «mousemove» и «mouseup» на «touchstart», «touchmove» и «touchend» соответственно устраняет проблему. Надеюсь, это поможет кому-то еще в будущем.

person jprince    schedule 30.10.2014