oomer
oomer

Reputation: 169

Protractor 7 does not go beyond 'Using FirefoxDriver directly...'

I am unable to run e2e tests with protractor 7 with the following configuration

...
directConnect: true,
capabilities: {
  browserName: 'firefox'
}
...

on my MacOS Catalina. I noticed the

webdriver-manager update

command from the project's package.json downloads the geckodriver-v0.29.1.

As mentioned in the title the logs do not go beyond Using FirefoxDriver directly... when I run the tests. How can I check logs in more details (is there a verbose option in protractor?), and how can I fix the issue ?

Upvotes: 2

Views: 293

Answers (2)

Steverino
Steverino

Reputation: 21

With Splaktars answer I was able to get Firefox to launch using the typical directConnect: true setting.

I had to download the geckodriver-v0.29.1-macos.tar.gz package from the Github Releases and extract the binary. Then I replaced the geckodriver-v0.29.1 binary previously downloaded through webdriver-manager with that copy from the package.

After that I launched my tests to make sure everything was still partially working and finally saw the MacOS security popup. I ran the command to remove the quarantine flag:

xattr -r -d com.apple.quarantine /path/to/geckodriver-v0.29.1

Relaunched the tests and finally Firefox popped up... Thanks again to Splaktar, just made an account so I can't comment or upvote for help

Upvotes: 2

Splaktar
Splaktar

Reputation: 5894

It looks like there is a known issue in the v0.29.1 release notes: https://github.com/mozilla/geckodriver/releases/tag/v0.29.1

Those point to some GeckoDriver macOS Notarization docs: https://firefox-source-docs.mozilla.org/testing/geckodriver/Notarization.html

However that page say

Arbitrary software downloaded through other means, such as curl(1) is not affected by this change.

I don't get any security pop ups or warnings, just the hang that you see.

Running

 xattr -r -d com.apple.quarantine /Users/splaktar/Git/app/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.29.1

Doesn't help.

In https://github.com/angular/protractor/issues/4253, there are a lot of old issues mentioned with Firefox and directConnect support. I tried using directConnect: false with a suggestion from that issue:

config.capabilities = {
  'browserName': 'firefox',
  'marionette': true,
  'elementScrollBehavior': 1
};
config.directConnect = false;
config.seleniumAddress = 'http://localhost:4444';
config.localSeleniumStandaloneOpts = {
  jvmArgs: ['-Dwebdriver.gecko.driver=node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.29.1']
};

I ran webdriver-manager start and then ran my tests, but that failed quickly with an error page's HTML in the console and From: Task: WebDriver.createSession() Process exited with error code 199.

I also tried setting

config.firefoxPath = '/usr/local/bin/firefox-bin';

after creating a symbolic link there to /Applications/Firefox.app/Contents/MacOS/firefox-bin. But that didn't help at all. Firefox never gets started. I tried with Firefox Developer Edition as well.

Still investigating...

Upvotes: 0

Related Questions