如何在selenium-webdriver nodejs land中更改selenium用户代理?

时间:2013-08-29 02:30:21

标签: javascript node.js selenium

我在javascript + mocha + node land。

我尝试将userAgent和'user-agent'设置为功能键:

var webdriver = require('selenium-webdriver');
var ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X)';

var driver = new webdriver.Builder().
     ...
     withCapabilities({ 'browserName': 'firefox',
        userAgent: ua,
        'user-agent': ua,
    }).
    build();

this answer表示要使用firefox配置文件,但是没有公开。全球没有driver.FirefoxProfile也没有曝光,webdriver.FirefoxProfile也没有driver.profiles等。

我尝试使用谷歌搜索并查看the sourcethe documentation,但这里没有任何内容。

5 个答案:

答案 0 :(得分:5)

我使用WD使用以下代码成功更改了幻影的用户代理:

var capabilities = {
    'browserName': 'phantomjs',
    'phantomjs.page.settings.userAgent':  'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.11 Safari/537.36'
};
return browser
    .init(capabilities)
...

this链接显示了如何更改firefox用户代理,尽管提供的代码是针对C#/ Ruby的。

答案 1 :(得分:3)

您只需要安装firefox-profile包。这是一个片段:

var webdriver = require('selenium-webdriver');
var FirefoxProfile = require('firefox-profile');

var myProfile = new FirefoxProfile();        
var capabilities = webdriver.Capabilities.firefox();

// here you set the user-agent preference 
myProfile.setPreference('general.useragent.override', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36');

// attach your newly created profile 
myProfile.encoded(function(encodedProfile) {
    capabilities.set('firefox_profile', encodedProfile);

    // start the browser 
    var wd = new webdriver.Builder().
        withCapabilities(capabilities).
        build();

    wd.get('http://testingsite.com/');
});

轻松自在!

答案 2 :(得分:1)

无法使用Firefox执行此操作,但可以使用Chrome执行此操作。它没有记录:

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

var opts = new chrome.Options();
opts.addArguments(['user-agent="YOUR_USER_AGENT"']);

var driver = new webdriver.Builder().
    withCapabilities(opts.toCapabilities()).
    build();

答案 3 :(得分:0)

对于铬你可以这样做:

var driver = new webdriver.Builder()
.usingServer('http://localhost:4444/wd/hub')
.withCapabilities({browserName: 'chrome', chromeOptions: {args:['user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"'] } })
.build();

答案 4 :(得分:-1)