为 Firefox 设置自定义用户代理 - selenium-standalone / webdriverjsAngular

Set custom user-agent for Firefox - selenium-standalone / webdriverjsAngular

我将 selenium-standalone 与 webdriverio 一起使用,并且我正在尝试设置自定义用户代理。

var selenium = require('selenium-standalone');
var webdriverjsAngular = require('webdriverjs-angular');
var FirefoxProfile = require('firefox-profile');
var myProfile = new FirefoxProfile();
myProfile.setPreference("general.useragent.override", "custom-user-agent");


var webDriverOptions = {
    desiredCapabilities: {
        browserName: 'firefox',
        firefox_profile: myProfile
    }
};
var seleniumOptions = {
    drivers: {
        chrome: {
            version: '2.9',
            arch: process.arch,
            baseURL: 'https://chromedriver.storage.googleapis.com'
        },
    },
};

selenium.start(seleniumOptions, function(err, child) {
    webdriverjsAngular.remote(webDriverOptions)
     .....
}

除了未使用 firefox-profile 的设置外,代码有效,Firefox 仍在使用此用户代理:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0.

如何设置自定义用户代理?

我漏掉了最后一部分:

var myProfile = new FirefoxProfile();
myProfile.setPreference("general.useragent.override", "custom-user-agent");    

myProfile.encoded(function (encodedProfile) {
    // output the generated encoded profile as stdout
    // NOTE: if an error occurs with the encodedProfile then the default Firefox settings will be used in your tests    
  var webDriverOptions = {
      desiredCapabilities: {
          browserName: 'firefox',
          firefox_profile: encodedProfile
      }
  };
});