我尝试通过以下代码段为Firefox注册selenium驱动程序。实际上,我想设置自定义的用户代理,但是在启动浏览器后,用户代理看起来不像我预期的那样。有人可以看看有什么问题吗?非常感谢
我正在与 * GeckoDriver 0.24 * Firefox 67.0版 *水豚3.18.0 * Selenium WebDriver gem 3.142.3
Capybara.register_driver :selenium do |app|
browser = ENV['BROWSER']
browser_sym = browser.to_sym
options = {
browser: browser_sym,
}
if browser == :firefox
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.folderList'] = 2
profile['browser.helperApps.neverAsk.saveToDisk'] = 'text/csv'
profile['dom.max_script_run_time'] = Configuration['browser']['wait_time']
profile['general.useragent.override'] = 'customized user-agent'
profile['dom.max_chrome_script_run_time'] = Configuration['browser']['wait_time']
profile['dom.max_script_run_time'] = Configuration['browser']['wait_time']
options[:profile] = profile
elsif browser == :chrome
.....
end
Capybara::Selenium::Driver.new(app, options)
转到启动的浏览器,并通过命令navigator.userAgent
从Firefox Dev Console检查返回结果,它将返回默认值而不是自定义的用户代理。
答案 0 :(得分:0)
要在Firefox配置文件中设置用户代理,您的条件需要最终解决类似问题
Capybara.register_driver :ff do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
profile['general.useragent.override'] = 'Random User Agent'
opts = Selenium::WebDriver::Firefox::Options.new(profile: profile)
Capybara::Selenium::Driver.new(app, browser: :firefox, options: opts)
end
您可以使用https://gist.github.com/twalpole/2f69984a5c6063aab04ea25c0aa3d2ca
中的代码自己运行它