Skip to content

Commit

Permalink
fix: Fix chromedriver arguments
Browse files Browse the repository at this point in the history
chromedriver requires very specifically "--port=..." instead of
"--port ..." or "-p ...".
  • Loading branch information
joeyparrish committed Jan 31, 2022
1 parent 5f80282 commit c0eb120
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ const PLATFORM_MAP = {
'linux': 'Linux',
};

const LocalWebDriverBase =
function(browserName, driverCommand, baseBrowserDecorator, logger) {
const LocalWebDriverBase = function(
browserName, driverCommand, argsFromPort, baseBrowserDecorator, logger) {
baseBrowserDecorator(this);

this.browserName = browserName;
Expand All @@ -38,12 +38,17 @@ const LocalWebDriverBase =
win32: driverCommand,
};

const port = Math.floor((Math.random() * 1000)) + 4000;

// Called by the base class to get arguments to pass to the driver command.
this._getOptions = () => argsFromPort(port.toString());

this.ENV_CMD = driverCommand.toUpperCase() + '_PATH';

const config = {
protocol: 'http:',
hostname: '127.0.0.1',
port: Math.floor((Math.random() * 1000)) + 4000,
port,
pathname: '/'
};

Expand Down Expand Up @@ -73,8 +78,6 @@ const LocalWebDriverBase =
log.debug('[http] ' + meth + ' ' + path + ' ' + (data || ''));
});

this._getOptions = () => ['-p', config.port.toString()];

this.on('start', (url) => {
this.browser.init(this.spec, (error) => {
if (error) {
Expand Down Expand Up @@ -141,19 +144,26 @@ const LocalWebDriverBase =

const LocalWebDriverChrome = function(baseBrowserDecorator, logger) {
LocalWebDriverBase.call(this,
'Chrome', 'chromedriver', baseBrowserDecorator, logger);
'Chrome', 'chromedriver', (port) => ['--port=' + port],
baseBrowserDecorator, logger);
};

// TODO: Add Chrome on android?

const LocalWebDriverFirefox = function(baseBrowserDecorator, logger) {
LocalWebDriverBase.call(this,
'Firefox', 'geckodriver', baseBrowserDecorator, logger);
'Firefox', 'geckodriver', (port) => ['-p', port],
baseBrowserDecorator, logger);
};

const LocalWebDriverSafari = function(baseBrowserDecorator, logger) {
LocalWebDriverBase.call(this,
'Safari', 'safaridriver', baseBrowserDecorator, logger);
'Safari', '/usr/bin/safaridriver', (port) => ['-p', port],
baseBrowserDecorator, logger);
};

// TODO: Add MS Edge

LocalWebDriverChrome.$inject = ['baseBrowserDecorator', 'logger'];
LocalWebDriverFirefox.$inject = ['baseBrowserDecorator', 'logger'];
LocalWebDriverSafari.$inject = ['baseBrowserDecorator', 'logger'];
Expand Down

0 comments on commit c0eb120

Please sign in to comment.