Capybara 的 Appium 驱动程序

Posted

技术标签:

【中文标题】Capybara 的 Appium 驱动程序【英文标题】:Appium driver for Capybara 【发布时间】:2014-08-22 20:48:30 【问题描述】:

是否可以将 Capybara 与自定义驱动程序一起使用,该驱动程序将与下面的 Appium ruby​​ 客户端对话?

我知道这两个工具都直接与 webdriver 通信,但是它们针对不同的环境(桌面和移动),因此 Capybara 和 Appium 的 API 不同。

尽管如此,我仍在考虑是否存在使用 Appium 作为 Capybara 驱动程序的情况。此类驱动程序将提供一些额外的移动专用 API,并且可能不会实现 Capybara::Driver::Base 中的所有内容,但可以创建一个测试场景,该场景将在桌面和移动浏览器上运行。 p>

所以我的问题是 - 有没有以这种方式使用 Appium 的示例?

【问题讨论】:

【参考方案1】:

我们决定在使用 appium_lib gem 的同时创建 gem appium_capybara。这使得 Appium 可以与 Capybara 一起使用。它位于 git 上的 https://github.com/appium/appium_capybara 和 ruby​​gems 上的 https://rubygems.org/gems/appium_capybara。

【讨论】:

哇,这看起来很棒。谢谢。【参考方案2】:

我想出了一个办法。 :)

这是一段漫长的旅程,但最终却变得非常简单。

Capybara.register_driver :ipad do |app|
  caps = 
    :device => "iPad Simulator",
    :browserName => 'ios',
    :platform => 'Mac',
    :version => '6.1',
    :app => 'safari'
    

    Capybara::Selenium::Driver.new(app, :browser => :remote, :url => "http://localhost:4723/wd/hub/", :desired_capabilities => caps)
  end
Capybara.default_driver = :ipad

我将它与 Xcode 4.6.3 版和 Appium 1.1.0 版一起使用。我尝试使用最新的 Appium,但它以某种方式破坏了我的设置。

我的灵感来自这个页面:http://www.matthewbussa.com/2013/10/cross-browsercross-platform-automated.html

希望对你有帮助

【讨论】:

以上是关于Capybara 的 Appium 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 RSpec + capybara-webkit 检查 JS 框是不是存在

模拟在 Rspec Capybara 中按下 Tab 键?

通过 Capybara (v2) 与 Bootstrap 模态交互时出现问题

Robot Framework - 将 Appium 驱动程序传递给 python 脚本

appium-Android的驱动程序

Cucumber, capybara and selenium - 无需按钮即可提交表单