我正在通过Sausage运行我的硒测试(它基本上扩展了phpunit selenium测试用例以包含Sauce Labs的附加功能)。我的问题是我需要在Firefox上运行特定的用户代理。
这是我的firefox浏览器阵列:
array(
'browserName' => 'firefox',
'host' => 'localhost',
'port' => 4444,
'local' => true,
'sessionStrategy' => 'isolated'
)
答案 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