![](/img/trans.png)
[英]Selenium-webdriver doesn't open firefox from mocha in nodejs
[英]Set userAgent with selenium-webdriver/firefox (NodeJS)
我有一個使用“selenium-webdriver”運行瀏覽器的代碼。 它在 Ubuntu 上運行。
我必須重寫 userAgent,這樣它看起來就像來自瀏覽器的請求來自 Windows(即User-Agent請求標頭的值)。
這是我的 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/');
出現的 userAgent 是
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
這是console.log(profile); 輸出(如您所見 - '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_: [] }
我嘗試手動設置general.useragent.override (按照http://www.howtogeek.com/113439/how-to-change-your-browsers-user-agent-without-installing-any-extensions/ ) - 它作品! 雖然它不會影響使用 selenium-webdriver 驅動程序打開的實例的設置(無論如何我更喜歡能夠實用地設置它)。
知道為什么它對我不起作用嗎?
據我所知, 無法使用firefox以編程方式設置用戶代理 。 相反,我建議你在ChromeDriver上使用鉻 。 如下面的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/')
如果要在腳本運行期間更改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.