Драйвер Appium_capybara + интеграция с Applitools - PullRequest
0 голосов
/ 11 июня 2018

Я использую инфраструктуру RSpec с 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 Ответ

0 голосов
/ 12 июня 2018

Если посмотреть на источник для драгоценного камня 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 gem
  2. Вы нетребующие файлы, необходимые для поддержки Appium::Capybara::Driver, например applitools / capybara, хотя после быстрого просмотра кода eyes_selenium я не думаю, что он добавляет метод driver_for_eyes к любому классу предков Appium::Capybara::Driver(хотя исправляет Appium :: Driver), так что # 1, вероятно, более вероятно.
...