Драйвер Appium_capybara + интеграция с Applitools

Я использую RSpec Framework с capybara + eyes_selenium для визуального тестирования, и я хочу интегрировать мобильное визуальное тестирование. я установил appium_capybaraи работает с удаленным сервером appium, который работает как узел в моем удаленном селеновом хабе.

Пока все работает отлично, мне удалось войти в мой симулятор iOs и взаимодействовать со страницей. Проблема заключается в интеграции всего этого с applitools.

я использую драгоценный камень eyes_selenium, но я не могу выполнить Eyes.open со мной Appium::Capybara::Driver объект, получая исключение, что этот драйвер неизвестен.

Eyes.open(app_name: 'Applitools', test_name: test_name, viewport_size: viewport_size, driver: Capybara.page.driver)

кому-нибудь удалось заставить его работать?

1 ответ

Глядя на источник для eyes_selenium драгоценный камень, единственное место, где ошибка может прийти из eyes_driver метод - https://github.com/applitools/eyes.sdk.ruby/blob/master/lib/applitools/selenium/eyes.rb#L39 - который реализован следующим образом

def eyes_driver(driver, eyes = nil)
  if driver.respond_to? :driver_for_eyes
    driver.driver_for_eyes eyes
  elsif defined?(::Capybara::Poltergeist) && (driver.is_a? ::Capybara::Poltergeist::Driver)
    Applitools::Poltergeist::Driver.new(eyes, driver: driver)
  else
    unless driver.is_a?(Applitools::Selenium::Driver)
      Applitools::EyesLogger.warn("Unrecognized driver type: (#{driver.class.name})!")
      is_mobile_device = driver.respond_to?(:capabilities) && driver.capabilities['platformName']
      Applitools::Selenium::Driver.new(eyes, driver: driver, is_mobile_device: is_mobile_device)
    end
    raise Applitools::EyesError.new "Unknown driver #{driver}!"
  end
end

На первый взгляд else часть этого мне кажется совершенно неработающей (зачем создавать новый экземпляр Applitools::Selenium::Driver, чтобы потом вызвать ошибку?). Тем не менее, это оставляет только несколько возможностей, почему это не работает для вас,

  1. Appium::Capybara::Driver это не тип драйвера, поддерживаемый eyes_selenium драгоценный камень
  2. Вам не нужны файлы, необходимые для исправления Appium::Capybara::Driver для поддержки, например, 'applitools/capybara', хотя после быстрого просмотра кода eyes_selenium я не думаю, что он добавляет driver_for_eyes метод к любому классу предка Appium::Capybara::Driver (хотя исправляет Appium::Driver), так что #1, вероятно, более вероятно.
Другие вопросы по тегам