0

I'm running my selenium tests through Sausage (which basically extends the phpunit selenium test case to include additional functionality for Sauce Labs). My issue is I need to run a specific user agent on Firefox.

Here's my firefox browser array:

        array(
            'browserName' => 'firefox',
            'host'        => 'localhost',
            'port'        => 4444,
            'local'       => true,
            'sessionStrategy' => 'isolated'
            )
Alex R
  • 31
  • 5

1 Answers1

3

The trick to getting this is creating a firefox profile which contains the user agent. Then we pass the profile to the web driver as a desired capability.

The following commands create a firefox profile and base64 encodes it so we can pass it to the web driver.

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

The simplified code with the base64 encoded firefox profile is below:

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

Thanks to Malvineous from a related thread for the idea: PHPUnit + Selenium: How to set Firefox about:config options?

For reference, this is the list of allowed desired capabilities: https://code.google.com/p/selenium/wiki/DesiredCapabilities

Community
  • 1
  • 1
Alex R
  • 31
  • 5