我正在使用Capybara和Cucumber运行一些集成测试,其中之一需要禁用JavaScript,我可以通过使用开发人员工具并禁用JS(Chrome)来手动实现此目的,但是如何实现此过程的自动化。我想要一个启用JS禁用或启用/禁用中间测试的浏览器启动选项
var result =
[
{label:'a name value',value:"a id value",
children:[{label:"b name value",value:"b parentId value"}]
},
...
]
使用Chrome作为我的浏览器可以做到吗?
答案 0 :(得分:1)
为什么当您发布问题时,几分钟后您就会发现问题。对于有兴趣的人,这就是我为禁用JS所做的事情
Capybara.register_driver :js_disabled do |app|
chrome_binary = ENV["HENDRICKS_CHROME_BINARY"]
if chrome_binary.nil?
Capybara::Selenium::Driver.new(app, :browser => :chrome)
else
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
"chromeOptions" => {
"prefs" => {
'profile.managed_default_content_settings.javascript' => 2
},
"binary" => chrome_binary + "/Contents/MacOS/Chromium"
}
)
Capybara::Selenium::Driver.new(app, :browser => :chrome, :desired_capabilities => capabilities)
end
end
请注意通过chromeOptions传递的prefs对象