Capybara 获取远程浏览器的水豚会话

Capybara 获取远程浏览器的水豚会话,capybara,selenium-grid2,Capybara,Selenium Grid2,我找不到任何显示传入功能和创建远程会话的正确方法的内容。像下面这样的 Capybara.default_driver = :Selenium @session = Capybara::Session.new :selenium 有人能给我指出正确的方向吗?我已经看过很多这样的远程注册的例子,但是没有得到它的实例,这样我就可以在代码中对它进行操作。假设你已经注册了你在文章中列出的驱动程序,然后创建一个会话,就像你在问题中所说的那样 session = Capybara::Session.new

我找不到任何显示传入功能和创建远程会话的正确方法的内容。像下面这样的

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

有人能给我指出正确的方向吗?我已经看过很多这样的远程注册的例子,但是没有得到它的实例,这样我就可以在代码中对它进行操作。

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

session = Capybara::Session.new :registered_driver_name
如果你想让水豚在测试中运行应用程序,那么它的

session = Capybara::Session.new :registered_driver_name, rack_app
需要“水豚”
需要“selenium webdriver”
#寄存器驱动程序
WEBDRIVER\u HUB\u URL=“http://:4444/wd/HUB”
目标分辨率=[12801024]
CHROME_开关=%W(--窗口大小=#{TARGET_分辨率[0]},#{TARGET_分辨率[1]}--禁用转换)
CHROME_选项={
“args”=>CHROME\u开关
}
Capybara.register_驱动程序:远程chrome do应用程序|
caps=Selenium::WebDriver::Remote::Capabilities.chrome(:chromeOptions=>chrome\u选项)
选项={
:browser=>:远程,
:url=>WEBDRIVER\u HUB\u url,
:所需的_功能=>上限
}
Capybara::Selenium::Driver.new(应用程序,选项)
结束
#配置水豚
Capybara.configure do | config|
config.default\u驱动程序=:远程\u
config.javascript\u驱动程序=:远程
结束
现在,
:当您试图通过调用
Capybara.page
方法启动新会话时,将使用远程chrome
驱动程序

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