我正在使用带有capybara + eyes_selenium的RSpec框架进行可视化测试,并且我想集成移动可视化测试。我安装了appium_capybara,它与远程appium服务器一起工作,该服务器在我的远程selenium集线器中充当一个节点。
到目前为止,它工作得很好,我已经设法登录到我的iOs模拟器,并与页面进行交互。问题是把整个东西和applitools集成在一起。
我正在使用gem eyes_selenium,但是我似乎不能对我的Appium::Capybara::Driver对象执行Eyes.open,得到一个异常,这个驱动程序是未知的。
Eyes.open(app_name: 'Applitools', test_name: test_name, viewport_size: viewport_size, driver: Capybara.page.driver)有人设法让它工作了吗?
发布于 2018-06-12 23:06:04
查看eyes_selenium gem的源代码,错误可能来自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 gemdriver_for_eyes方法添加到Appium::Capybara::Driver的任何祖先类中(虽然可以修补Appium::Driver ),因此#1可能更有可能。https://stackoverflow.com/questions/50796126
复制相似问题