浏览器不在 Selenoid [Capybara, Rspec] 中启动

时间:2021-02-12 06:12:08

标签: docker rspec capybara selenoid

我正在尝试配置 capybara + rspec + selenoid,以在无头模式下运行测试。 这是我的配置

Capybara.default_max_wait_time = 5
Capybara.javascript_driver = :selenium_chrome_headless
Capybara.current_driver = :selenium_chrome_headless
caps = Selenium::WebDriver::Remote::Capabilities.new
caps['browserName'] = 'chrome'
caps['browserVersion'] = '88.0'
caps['"enableVNC"'] = 'True'

Selenium::WebDriver.for(
  :remote,
  url: 'http://localhost:4444/wd/hub',
  desired_capabilities: caps
)

我运行我的测试 - rspec spec/spec_test.rb

require_relative '../spec_helper.rb'

link1 = 'https://github.com'
link2 = 'https://yandex.ru'
link3 = 'https://www.google.com'

feature 'Main test' do
  scenario 'Test for check selenoid' do
    [link1, link2, link3].each { |l| visit l; sleep 5 }
  end
end

但是当我启动 http://localhost:8080б 时,我看不到浏览器中发生了什么。 如果我启动 http://localhost:8080/status

Capabilities

{"state":{"total":5,"used":1,"queued":0,"pending":0,"browsers":{"chrome":{"87.0":{},"88.0":{"unknown":{"count":1,"sessions":[{"id":"109e35b770004249fa66059b8135edac","container":"c11ff9c042dcd4e30725fb11c7613cfc7ec26c014035d7b74a0b974bf4b45006","caps":{"browserName":"chrome","version":"88.0","screenResolution":"1920x1080x24","enableVNC":false,"name":"","timeZone":""}}]}}},"firefox":{"84.0":{},"85.0":{}},"opera":{"72.0":{},"73.0":{}}},"videos":null},"origin":"http://selenoid:4444","browsers":{"chrome":1,"firefox":0,"opera":0},"sessions":{"109e35b770004249fa66059b8135edac":{"id":"109e35b770004249fa66059b8135edac","container":"c11ff9c042dcd4e30725fb11c7613cfc7ec26c014035d7b74a0b974bf4b45006","caps":{"browserName":"chrome","version":"88.0","screenResolution":"1920x1080x24","enableVNC":false,"name":"","timeZone":""},"quota":"unknown"}},"version":"1.10.2[2020-11-18_07:31:01AM]","errors":[]}

我在首选项中检测到 "enableVNC":false,这可能很重要吗? 也许我没有考虑到一些设置?

但是,如果我只运行 test ruby spec/spec_test.rb,没有设置,我在 selenoid 中看不到启动的浏览器

caps = Selenium::WebDriver::Remote::Capabilities.new
caps['browserName'] = 'chrome'
caps['version'] = '88'
caps['"enableVNC"'] = 'True'
Selenium::WebDriver.logger.level = :info
driver = Selenium::WebDriver.for(
  :remote,
  url: 'http://127.0.0.1:4444/wd/hub',
  desired_capabilities: caps
)

driver.get 'https://www.google.com'
sleep 5
driver.quit

Info in selenoid

1 个答案:

答案 0 :(得分:1)

应该是:

caps['enableVNC'] = true
相关问题