Skip to content

Commit

Permalink
Tentative support for Firefox
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolas-grekas committed May 10, 2023
1 parent 8801213 commit 19048b3
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions src/ProcessManager/FirefoxManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

namespace Symfony\Component\Panther\ProcessManager;

use Facebook\WebDriver\Firefox\FirefoxOptions;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\WebDriver;
Expand Down Expand Up @@ -52,20 +53,17 @@ public function start(): WebDriver
$this->waitUntilReady($this->process, $url.$this->options['path'], 'firefox');
}

$firefoxOptions = [];
if (isset($_SERVER['PANTHER_FIREFOX_BINARY'])) {
$firefoxOptions['binary'] = $_SERVER['PANTHER_FIREFOX_BINARY'];
}
if ($this->arguments) {
$firefoxOptions['args'] = $this->arguments;
}

$capabilities = DesiredCapabilities::firefox();
$capabilities->setCapability('moz:firefoxOptions', $firefoxOptions);

foreach ($this->options['capabilities'] as $capability => $value) {
$capabilities->setCapability($capability, $value);
}
$firefoxOptions = $capabilities->getCapability(FirefoxOptions::CAPABILITY);

// if (isset($_SERVER['PANTHER_FIREFOX_BINARY'])) {
// $firefoxOptions['binary'] = $_SERVER['PANTHER_FIREFOX_BINARY'];
// }
$firefoxOptions->addArguments($this->arguments);

return RemoteWebDriver::create($url, $capabilities, $this->options['connection_timeout_in_ms'] ?? null, $this->options['request_timeout_in_ms'] ?? null);
}
Expand Down Expand Up @@ -113,12 +111,24 @@ private function getDefaultArguments(): array

private function getDefaultOptions(): array
{
$firefoxOptions = new FirefoxOptions();

// TODO: make this work - not sure why it doesn't :)
$firefoxOptions->setPreference('devtools.netmonitor.enabled', true);
$firefoxOptions->setPreference('devtools.netmonitor.har.enableAutoExportToFile', true);
$firefoxOptions->setPreference('devtools.netmonitor.har.forceExport', true);
$firefoxOptions->setPreference('devtools.netmonitor.har.defaultLogDir', '/tmp/panther-firefox/');

return [
'scheme' => 'http',
'host' => '127.0.0.1',
'port' => 4444,
'path' => '/status',
'capabilities' => [],

Check failure on line 127 in src/ProcessManager/FirefoxManager.php

View workflow job for this annotation

GitHub Actions / Static Analysis

Array has 2 duplicate keys with value 'capabilities' ('capabilities', 'capabilities').
'capabilities' => [
'acceptInsecureCerts' => true,
FirefoxOptions::CAPABILITY => $firefoxOptions,
],
];
}
}

0 comments on commit 19048b3

Please sign in to comment.