我在我的Ruby on Rails(5.2.1)项目中使用chrome headless with Selenium(3.14.0)和Capybara(3.8.0),我有一个测试,它可以在无头chrome中工作,但不能在无头chrome中工作。我在谷歌chrome稳定版69上使用的是“--无头”标志。
我已经用下面的设置了我的无头chrome,这适用于所有不下载文件的测试。
download_path="#{Rails.root}/tmp/downloads"
Capybara.register_driver(:headless_chrome) do |app|
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: {
prefs: {
'download.default_directory' => download_path,
"download.extensions_to_open" => "applications/pdf",
'download.directory_upgrade' => true,
'download.prompt_for_download' => false,
'plugins.plugins_disabled' => ["Chrome PDF Viewer"]
},
binary: "/opt/google/chrome/google-chrome",
args: %w[headless disable-gpu window-size=1920,1080]
}
)
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: caps
)
end
@driver = Selenium::WebDriver.for :chrome, options: options
bridge = @driver.send(:bridge)
path = '/session/:session_id/chromium/send_command'
path[':session_id'] = bridge.session_id
bridge.http.call(:post, path, cmd: 'Page.setDownloadBehavior',
params: {
behavior: 'allow',
downloadPath: download_path
})
您不再需要手动发送它,它已作为selenium::WebDriver::Chrome::Server#download_path=
添加到selenium中。您可以通过Capybara::Selenium::driver
实例在驱动程序注册中设置它
...
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: caps
).tap { |d| d.browser.download_path = <your download path> }
如何让下载以无头模式启动?
问题内容: 我正在使用python-selenium和Chrome 59,并尝试自动执行简单的下载序列。当我正常启动浏览器时,下载有效,但是当我以无头模式运行时,下载不起作用。 我什至尝试添加默认路径: 在常规实现中,添加默认路径是可行的,但是无头版本仍然存在相同的问题。 如何使下载以无头模式开始? 问题答案: 是的,这是安全的“功能”。如前所述,这里是Bug讨论:https : //bugs.c
我是cucumber和水豚的新手,我对以下错误感到困惑: 在我的功能中,我有: 我的步骤如下所示: 我尝试了“click(button\u text)和click\u link”方法。我想这可能是我没有看到的明显的东西。我试图找到按钮元素的css定位器,然后单击该元素。我认为regex不需要更改,因为我正在更改“button\u text”局部变量的内容。还是我?
在我的Rails项目中,我通常使用在我的应用程序中构建/创建用户。我想知道在使用Cucumber, Capybara时是否可以使用来测试用户与我的应用程序的交互。没有数据库可以保存它们,我只是想存储它们的凭据 我可以有很多用户希望为每个用户创建工厂(除非有更好的Cucumber方法)。 在我的支持文件夹中,我可以创建一个Factorys文件夹,然后创建一个。保存每个用户的rb文件。 在我的文件中,
我的场景是站点上的单击图标打开文件浏览器。是否可以将图像附加到打开的文件浏览器窗口。我的配置是Docker,水豚,硒驱动程序。我正在测试无头和无头浏览器(Chrome)
headless Chrome可以通过MacOS上的Selenium Webdriver使用自签名证书吗? 我试图让Rails系统测试由SSL上的headless Chrome驱动。 测试设置 样品测试 页面内容: MacOS 10.13.6 Rails 5.2.1 Ruby 2.4.1 (gem)3.5.1 (gem)3.14.0 (gem)2.34 铬68.0.3440.106。也尝试过 谷歌