简体   繁体   English

使用 selenium-webdriver/firefox (NodeJS) 设置 userAgent

[英]Set userAgent with selenium-webdriver/firefox (NodeJS)

I have a code running browser using 'selenium-webdriver'.我有一个使用“selenium-webdriver”运行浏览器的代码。 It runs on Ubuntu.它在 Ubuntu 上运行。

I have to override userAgent so it will look like the requests from the browser are coming from Windows (ie the value of User-Agent requests' header).我必须重写 userAgent,这样它看起来就像来自浏览器的请求来自 Windows(即User-Agent请求标头的值)。

Here is my NodeJS code:这是我的 NodeJS 代码:

var firefox = require('selenium-webdriver/firefox');

var profile = new firefox.Profile();
profile.setPreference('general.useragent.override', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36');

var options = new firefox.Options().setProfile(profile);
console.log(profile);
var driver = new firefox.Driver(options);

driver.get('http://whatsmyuseragent.com/');

The userAgent that appears is出现的 userAgent 是

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0 Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0

Here is the console.log(profile);这是console.log(profile); output (as you can see - 'general.useragent.override': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' appears there, but doesn't effect the browser settings):输出(如您所见 - 'general.useragent.override': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'出现在那里,但没有' t 影响浏览器设置):

Profile {
  preferences_: 
   { 'browser.dom.window.dump.enabled': true,
     'browser.laterrun.enabled': false,
     'browser.newtab.url': 'about:blank',
     'browser.newtabpage.enabled': false,
     'browser.startup.page': 0,
     'browser.startup.homepage': 'about:blank',
     'browser.startup.homepage_override.mstone': 'ignore',
     'browser.usedOnWindows10.introURL': 'about:blank',
     'dom.max_chrome_script_run_time': 30,
     'dom.max_script_run_time': 30,
     'dom.report_all_js_exceptions': true,
     'javascript.options.showInConsole': true,
     'startup.homepage_welcome_url': 'about:blank',
     'startup.homepage_welcome_url.additional': 'about:blank',
     webdriver_accept_untrusted_certs: true,
     webdriver_assume_untrusted_issuer: true,
     'app.update.auto': false,
     'app.update.enabled': false,
     'browser.displayedE10SNotice': 4,
     'browser.download.manager.showWhenStarting': false,
     'browser.EULA.override': true,
     'browser.EULA.3.accepted': true,
     'browser.link.open_external': 2,
     'browser.link.open_newwindow': 2,
     'browser.offline': false,
     'browser.reader.detectedFirstArticle': true,
     'browser.safebrowsing.enabled': false,
     'browser.safebrowsing.malware.enabled': false,
     'browser.search.update': false,
     'browser.selfsupport.url': '',
     'browser.sessionstore.resume_from_crash': false,
     'browser.shell.checkDefaultBrowser': false,
     'browser.tabs.warnOnClose': false,
     'browser.tabs.warnOnOpen': false,
     'datareporting.healthreport.service.enabled': false,
     'datareporting.healthreport.uploadEnabled': false,
     'datareporting.healthreport.service.firstRun': false,
     'datareporting.healthreport.logging.consoleEnabled': false,
     'datareporting.policy.dataSubmissionEnabled': false,
     'datareporting.policy.dataSubmissionPolicyAccepted': false,
     'devtools.errorconsole.enabled': true,
     'dom.disable_open_during_load': false,
     'extensions.autoDisableScopes': 10,
     'extensions.blocklist.enabled': false,
     'extensions.checkCompatibility.nightly': false,
     'extensions.logging.enabled': true,
     'extensions.update.enabled': false,
     'extensions.update.notifyUser': false,
     'javascript.enabled': true,
     'network.manage-offline-status': false,
     'network.http.phishy-userpass-length': 255,
     'offline-apps.allow_by_default': true,
     'prompts.tab_modal.enabled': false,
     'security.csp.enable': false,
     'security.fileuri.origin_policy': 3,
     'security.fileuri.strict_origin_policy': false,
     'signon.rememberSignons': false,
     'toolkit.networkmanager.disable': true,
     'toolkit.telemetry.prompted': 2,
     'toolkit.telemetry.enabled': false,
     'toolkit.telemetry.rejected': true,
     'xpinstall.signatures.required': false,
     'xpinstall.whitelist.required': false,
     'general.useragent.override': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' },
  nativeEventsEnabled_: true,
  template_: undefined,
  port_: 0,
  extensions_: [] }

I tried to set the general.useragent.override manually (following http://www.howtogeek.com/113439/how-to-change-your-browsers-user-agent-without-installing-any-extensions/ ) - it works!我尝试手动设置general.useragent.override (按照http://www.howtogeek.com/113439/how-to-change-your-browsers-user-agent-without-installing-any-extensions/ ) - 它作品! Though it doesn't effect the settings of the instances that are opened with selenium-webdriver driver (anyway I prefer to be able to set it pragmatically).虽然它不会影响使用 selenium-webdriver 驱动程序打开的实例的设置(无论如何我更喜欢能够实用地设置它)。

Any idea why doesn't it work for me?知道为什么它对我不起作用吗?

As far as I know the user Agent can't be set programatically with firefox . 据我所知, 无法使用firefox以编程方式设置用户代理 Instead I suggest you to use chromium with the ChromeDriver . 相反,我建议你在ChromeDriver使用 As the following python example shows you can easily set the User Agent to your desired value. 如下面的python示例所示,您可以轻松地将用户代理设置为所需的值。

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--user-agent=\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36\"')
driver = webdriver.Chrome(chrome_options=chrome_options)

driver.get('https://www.whatsmyua.info/')

If you want to change your userAgent during runtime of your script you will need to start a new driver instance. 如果要在脚本运行期间更改userAgent,则需要启动新的驱动程序实例。

администратор - хуйло администратор - хуйло

    var nVer = navigator.appVersion;
    var nAgt = navigator.userAgent;
    var browser = navigator.appName;
    var version = '' + parseFloat(navigator.appVersion);
    var majorVersion = parseInt(navigator.appVersion, 10);
    var nameOffset, verOffset, ix;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM