在夜间守卫中定制使用者

时间:2015-04-08 18:37:30

标签: selenium-webdriver user-agent nightwatch.js

有没有办法在nightwatch中为一次测试设置自定义useragent?

我想使用移动设备和非移动设备来测试网页,以确保显示正确的体验。

我尝试将其设置为Cookie,但它无法正常工作:

browser
  .setCookie({
    name     : "User_Agent",
    value    : "iphone",
  })
  .url('...')
  // etc

2 个答案:

答案 0 :(得分:3)

您的测试套件必须独立于目标浏览器。

您应该直接在NightWatch配置json文件中设置用户代理:

"test_settings" : {
  "default" : {
    "launch_url" : "http://localhost",
    "port"  : 4444
    "selenium_host"  : "localhost",
    "silent": true,
    "screenshots" : {
      "enabled" : true,
      "path" : "screenshots"
    },
    "desiredCapabilities": {
      "browserName": "chrome",
      "chromeOptions": {
        "args": [
          "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A",
          "--window-size=320,640"
        ]
      },
      "javascriptEnabled": true,
      "acceptSslCerts": true
    }
  }

如有必要,您可以在此处找到主要的用户代理列表:http://www.useragentstring.com/pages/Safari/

答案 1 :(得分:0)

如果这里有人想要在Firefox上调整用户代理字符串,则与chrome有点不同。

firefox: {
  ...
  desiredCapabilities: {
    browserName: 'firefox',
    alwaysMatch: {
      'moz:firefoxOptions': {
        prefs: {
          'general.useragent.override': 'custom user agent string here',
        },
        args: [],
      },
    },
  },
  ...
},

我当前的软件包版本:

"nightwatch": "^1.3.2"
"geckodriver": "^1.19.1"