1

我找不到任何显示传递功能和创建远程会话的正确方法的东西。类似于下面的东西

Capybara.default_driver = :Selenium
@session = Capybara::Session.new :selenium

谁能指出我如何做到这一点的正确方向?我已经看到了很多关于如何注册这样的遥控器的示例https://blog.testingbot.com/2012/02/19/selenium-cucumber-capybara,但没有任何东西可以获取它的实例,以便我可以对其采取行动在代码中。

4

2 回答 2

1
require 'capybara'
require 'selenium-webdriver'

#Register driver
WEBDRIVER_HUB_URL = "http://<YOUR_SELENIUM_GRID_HOST>:4444/wd/hub"
TARGET_RESOLUTION = [1280,1024]
CHROME_SWITCHES = %W(--window-size=#{TARGET_RESOLUTION[0]},#{TARGET_RESOLUTION[1]} --disable-translate)
CHROME_OPTIONS = {
  'args' => CHROME_SWITCHES
}

Capybara.register_driver :remote_chrome do |app|
  caps = Selenium::WebDriver::Remote::Capabilities.chrome(:chromeOptions => CHROME_OPTIONS)
  opts   = {
    :browser     => :remote,
    :url         => WEBDRIVER_HUB_URL,
    :desired_capabilities => caps
  }
  Capybara::Selenium::Driver.new(app, opts)
end

# Configure Capybara
Capybara.configure do |config|
  config.default_driver         = :remote_chrome
  config.javascript_driver      = :remote_chrome
end

现在,当您尝试通过调用方法:remote_chrome启动新会话时,将使用驱动程序。Capybara.page

于 2015-10-07T20:27:53.147 回答
0

假设您已经注册了您列出的文章中的驱动程序,然后创建一个会话,就像您提出问题一样

session = Capybara::Session.new :registered_driver_name

如果你想让 capybara 自己运行被测应用程序,那么它

session = Capybara::Session.new :registered_driver_name, rack_app
于 2015-10-01T22:16:00.060 回答