【问题标题】:Protractor: change user agent量角器:更改用户代理
【发布时间】:2014-05-07 14:39:53
【问题描述】:

我正在测试一个专为移动网页设计的网站。它会截取页面的屏幕截图,但是屏幕截图会像在桌面而不是移动设备上一样显示屏幕。如何为这些测试更改 chrome 的用户代理(我正在测试的浏览器)。我试过这个没有成功:

capabilities: {
    'browserName': 'chrome',
    'chromeOptions': {
        args: ['--user-agent ="Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3"'] 
    }
},

测试运行,但这条线似乎没有效果。

【问题讨论】:

    标签: google-chrome mobile google-chrome-devtools protractor


    【解决方案1】:

    Protractor 中的配置语法似乎发生了变化,对我来说,这在最近的 Chrome (v38) 上有效 (iPhone):

    capabilities: {
        'browserName': 'chrome',
        'chromeOptions': {
            'args': ['user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A405 Safari/600.1.4']
        }
    },
    

    【讨论】:

      【解决方案2】:

      对于 iPhone 5 Retina,您可能还想更改浏览器大小以匹配您的设备:

      browser.manage().window().setSize(1136, 640);
      

      将该代码放在您的 onPrepare 部分中。

      【讨论】:

      • 这行得通。我在我的beforeEach 中使用了这个,但如果我能坚持 onPrepare,那就更好了。由于我想使用尺寸变量(来自params),您知道我将如何做到这一点吗?
      • 您可以为此打开一个单独的问题并将链接放在这里,我很乐意提供帮助。
      • 也许首先尝试在 setSize() 中读取 browser.params.widthbrowser.params.height 并将参数添加到您的配置文件 like Julie does here
      • 太完美了!在 protractor-config.js 文件中,我对在 params.width 之前放置的内容有疑问
      【解决方案3】:

      我遇到过类似的情况,我无法让某些 chrome 参数起作用,例如设置 user-agent

      我的解决方案是在我的量角器配置中将 chromeOptions 更改为 goog:chromeOptions

      chromeOptions 在我的本地机器上通过 chromedriver 运行时有效,但在远程 Selenium 实例上运行时无效。 goog:chromeOptions 适用于本地和远程。

      我正在使用 Protractor 版本 5.4.2。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-12
        • 2013-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多