0

我正在使用 RSpec 框架capybara + eyes_selenium进行可视化测试,并且我想集成移动可视化测试。我安装了appium_capybara,它与远程 appium 服务器一起工作,该服务器在我的远程 selenium 集线器中充当节点。

到目前为止效果很好,我已经成功登录到我的 iOs 模拟器并与页面进行交互。问题是将整个事情与 applitools 集成。

我正在使用 gem eyes_selenium,但我似乎无法Eyes.open使用我的Appium::Capybara::Driver对象执行,出现此驱动程序未知的异常。

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

有人设法让它工作吗?

4

1 回答 1

0

查看eyes_seleniumgem 的来源,唯一可能出现错误的地方是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_seleniumgem支持的驱动程序类型
  2. 您不需要支持需要修补的文件Appium::Capybara::Driver,例如“applitools/capybara”,尽管在快速浏览完 eye_selenium 代码后,我认为它不会将该driver_for_eyes方法添加到任何祖先类Appium::Capybara::Driver(是否修补 Appium: :Driver 虽然)所以#1 可能更有可能。
于 2018-06-12T15:06:04.177 回答