ruby - 如何在容器中的黄瓜命令后打开 Chrome 浏览器的本地实例?
问题描述
我有一个 ruby 测试自动化项目,水豚在无头模式的容器中运行。我想在容器内运行时打开主机上的浏览器以启动自动化。
自动化项目位于容器内。容器无头模式正在工作。我希望主机负责打开 Chrome 浏览器并自动执行测试。
我的 env.rb 文件:
require 'capybara'
require 'capybara/dsl'
require 'capybara/cucumber'
require 'selenium-webdriver'
require 'rspec'
require 'site_prism'
require 'capybara/rspec/matchers'
require 'capybara/rspec/matcher_proxies'
require 'webdrivers'
require 'builder'
require 'pry'
Capybara.register_driver :chrome_headless do |app|
Capybara::Selenium::Driver.new app, browser: :chrome,
options: Selenium::WebDriver::Chrome::Options.new(args: %w[headless disable-gpu])
end
Capybara.configure do |config|
config.default_driver = :selenium_chrome
end
Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
'goog:chromeOptions': { args: %w(no-sandbox headless disable-gpu window-size=1280,1024 disable-features=VizDisplayCompositor) } )
Capybara::Selenium::Driver.new(app, browser: :chrome, desired_capabilities: capabilities)
end
Capybara.register_driver :chrome_headless do |app|
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--window-size=1920,1080')
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
Capybara::Selenium::Driver.new(app,
browser: :chrome,
options: options)
end
Capybara.configure do |config|
Capybara.javascript_driver = :headless_chrome
#Capybara.default_driver = :chrome_headless
Capybara.default_driver = :selenium_chrome
config.default_max_wait_time = 15
config.app_host = 'https://www.google.com'
end
解决方案
推荐阅读
- java - 检查字符串一是否在java中包含字符串二
- github - 如果对 github 操作有条件,是否可以进行模式匹配?
- oracle - Artifactory Derby DB 迁移到 Oracle
- excel - 将特定单元格填充到同一工作簿中另一个工作表的最后一行
- javascript - 添加两个数组,其中两个数组的现有成员和重复成员替换重复的成员
- karate - 关于如何在一个项目中使用 Http 和 ssl 配置空手道
- c# - 操作数类型冲突:加密的 varchar(255) 与 varchar 不兼容 - 带有 Upper 的存储过程 - 始终加密
- visual-studio - 如何在模拟器上运行 UWP 应用并模拟位置?
- css - 在文本上使用 CSS 渐变时的奇怪行为 (Safari)
- mysql - 计算项目并针对每一行显示