2

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 ?

Splaktar
  • 5,506
  • 5
  • 43
  • 74
oomer
  • 159
  • 3
  • 13

2 Answers2

2

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

Steverino
  • 21
  • 3
  • Saying thanks is polite and appreciated. However on StackOverflow saying thanks means upvoting or commenting. Since you do not have those privileges (yet), rest assured that politeness does not require you to say thanks in an answer. However, if your answer provides additional insight (which I cannot really tell, for lack of knowledge on my side), please make that more obvious. – Yunnosch Jun 14 '21 at 09:10
0

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...

Splaktar
  • 5,506
  • 5
  • 43
  • 74