MinkSelenium2Driver icon indicating copy to clipboard operation
MinkSelenium2Driver copied to clipboard

Set desired capabilities for firefox

Open TugcaEker opened this issue 11 years ago • 8 comments

I couldn't add capability to firefox driver. I added proxy option for connection but I couldn't set 'permissions.default.image' as '2'. Briefly, I want to disable image loading while test continue. What am I doing wrong?

$driver = new \Behat\Mink\Driver\Selenium2Driver(
    'firefox',
    array(
        "proxy" => array(
            "proxyType" => "manual",
            "httpProxy" => Core::selectProxy(),
        ),
        "permissions.default.image" => 2

    )
);

(also I'm tried to send it as array)

TugcaEker avatar Jul 25 '14 12:07 TugcaEker

Could you post links to some documentation about WebDriver + Firefox + Desired Capabilities.

Also what proxy stuff is doing there? First time I see that one.

aik099 avatar Jul 25 '14 13:07 aik099

Core::selectProxy() is a function which can choose one of my proxies from the list. You can look through, https://code.google.com/p/selenium/wiki/DesiredCapabilities

TugcaEker avatar Jul 25 '14 13:07 TugcaEker

Do you have any idea to set image loadings enable/disable?

TugcaEker avatar Jul 25 '14 21:07 TugcaEker

Googling a bit about the subject reveals topics, where people do this by changing Firefox profile. I guess there is no such desired capability that you're talking about after all.

aik099 avatar Jul 27 '14 08:07 aik099

I found these two links. But I couldn't apply them. http://stackoverflow.com/questions/24031961/phpunit-selenium-how-to-set-firefox-aboutconfig-options http://girliemangalo.wordpress.com/2009/02/05/creating-firefox-profile-for-your-selenium-rc-tests/

Also, you can see "permissions.default.image" if you type "about:config" in Firefox.

TugcaEker avatar Jul 28 '14 08:07 TugcaEker

Well, Selenium2 capabilities don't allow to define each Firefox setting separately. There is a single capability for setting the profile, which is something in base64 (but the Selenium documentation only has TODO: Document format about what should go inside this base64-encoded string).

Once you figure what goes inside, this can be configured this way:

$driver = new \Behat\Mink\Driver\Selenium2Driver(
    'firefox',
    array(
        'firefox' => array(
            'profile' => base64_encode($profile),
        ),
    )
);

stof avatar Aug 13 '14 23:08 stof

hmm, actually no. If you have the string content, you should set the firefox_profile key in the capabilities directly. the profile key inside firefox expects a path to a Firefox profile, and it will handle base64-encoding its content.

stof avatar Aug 13 '14 23:08 stof

@TugcaEker profile should be zipped with prefs.js in root of the archive and then you can set it as follows::

        $this->driver->setDesiredCapabilities([
            'firefox' => [
                'profile' => 'foo\testProfile.zip',
            ]
        ]);

or you can set it like @stof mentoioned using firefox_profile key:

        $this->driver->setDesiredCapabilities([
            'firefox_profile' => 'base64 of zipped profile'
        ]);

The first metod is just a sugar for the second one. You can find it here: https://github.com/minkphp/MinkSelenium2Driver/blob/master/src/Selenium2Driver.php#L111

kl3ryk avatar May 11 '15 00:05 kl3ryk