如何使用 selenium 网络驱动程序(Sauce Labs)设置自定义用户代理?
How to set a custom user agent using selenium web driver (Sauce Labs)?
我正在 运行通过 Sausage 进行 selenium 测试(它基本上扩展了 phpunit selenium 测试用例以包括 Sauce Labs 的附加功能)。我的问题是我需要 运行 Firefox 上的特定用户代理。
这是我的 firefox 浏览器数组:
array(
'browserName' => 'firefox',
'host' => 'localhost',
'port' => 4444,
'local' => true,
'sessionStrategy' => 'isolated'
)
获得这个的技巧是创建一个包含用户代理的 firefox 配置文件。然后我们将配置文件作为所需的功能传递给 Web 驱动程序。
以下命令创建一个 firefox 配置文件并对其进行 base64 编码,以便我们可以将其传递给网络驱动程序。
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
我正在 运行通过 Sausage 进行 selenium 测试(它基本上扩展了 phpunit selenium 测试用例以包括 Sauce Labs 的附加功能)。我的问题是我需要 运行 Firefox 上的特定用户代理。
这是我的 firefox 浏览器数组:
array(
'browserName' => 'firefox',
'host' => 'localhost',
'port' => 4444,
'local' => true,
'sessionStrategy' => 'isolated'
)
获得这个的技巧是创建一个包含用户代理的 firefox 配置文件。然后我们将配置文件作为所需的功能传递给 Web 驱动程序。
以下命令创建一个 firefox 配置文件并对其进行 base64 编码,以便我们可以将其传递给网络驱动程序。
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