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