实现这一点的诀窍是创建一个包含用户代理的 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