如何使用selenium web驱动程序(Sauce Labs)设置自定义用户代理?

时间:2015-04-10 22:53:13

标签: selenium phpunit saucelabs

我正在通过Sausage运行我的硒测试(它基本上扩展了phpunit selenium测试用例以包含Sauce Labs的附加功能)。我的问题是我需要在Firefox上运行特定的用户代理。

这是我的firefox浏览器阵列:

        array(
            'browserName' => 'firefox',
            'host'        => 'localhost',
            'port'        => 4444,
            'local'       => true,
            'sessionStrategy' => 'isolated'
            )

1 个答案:

答案 0 :(得分:3)

获得此功能的诀窍是创建一个包含用户代理的firefox配置文件。然后我们将配置文件作为所需功能传递给Web驱动程序。

以下命令创建一个firefox配置文件,base64对其进行编码,以便我们将其传递给Web驱动程序。

mkdir firefox-profile
cd firefox-profile/
echo 'user_pref("general.useragent.override", "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B350 Safari/8536.25");' >> prefs.js
zip -r ../firefox-profile.zip *
base64 < ../firefox-profile.zip

使用base64编码的firefox配置文件的简化代码如下:

      array(
            'browserName' => 'firefox',
            'host'        => 'localhost',
            'port'        => 4444,
            'local'       => true,
            'sessionStrategy' => 'isolated'
            'desiredCapabilities' => array(
                'firefox_profile' => 'UEsDBBQAAAAIAOKTikaRRkklnQAAALQAAAAIABUAcHJlZnMuanNVVAkAAyhPKFUoTyhVVXgEADIE
MwQljMsOgjAURPd+xU1XkJAWxDYmrNSFJthIgq8dKXjRhoaSAi78elF2MydnZuzRFZ3D2iNPbNEp
Q8cJqakM1L7ROf1AEgCR9qONUYzTEDydvWyLCeyyC8wZTjmIIipWYHSDIFX1I3cfNl1n8IZlqgfG
Y0GXArz0cJbHYDb3WDXWhyu6XtuWiele2lIbZFG4jXkIuaqV02z9H3PiJ4svUEsBAhcDFAAAAAgA
4pOKRpFGSSWdAAAAtAAAAAgADQAAAAAAAQAAALSBAAAAAHByZWZzLmpzVVQFAAMoTyhVVXgAAFBL
BQYAAAAAAQABAEMAAADYAAAAAAA='
                )
            )

感谢Malvineous从这个想法的相关主题: PHPUnit + Selenium: How to set Firefox about:config options?

作为参考,这是允许的所需功能列表: https://code.google.com/p/selenium/wiki/DesiredCapabilities