mozilla / geckodriver

WebDriver for Firefox
https://firefox-source-docs.mozilla.org/testing/geckodriver/
Mozilla Public License 2.0
7.03k stars 1.51k forks source link

Make external Geckodriver compatible with Firefox snap by default #2055

Open joeyparrish opened 1 year ago

joeyparrish commented 1 year ago

System

Testcase

N/A

Stacktrace

N/A

Trace-level log

N/A

See also comment https://github.com/mozilla/geckodriver/issues/2010#issuecomment-1281545025 and below for context.

My test infrastructure downloads drivers to match the installed versions of browsers, but doesn't know about snap. Geckodriver only supports Firefox snap without special arguments if you use the version from inside snap. According to #2010, this is because the snap package doesn't share /tmp with the host, and geckodriver seems to want to put temporary profiles into /tmp.

I would like geckodriver to be able to be independent of snap, and for an external geckodriver to work by default whether Firefox is installed directly on the host or via snap. It seems that this can be done by either:

  1. changing the default of --profile-root to a shared location
  2. by sharing the host's /tmp to the snap package

What would be a more acceptable solution? Is there a third option?

Thanks!

jgraham commented 1 year ago

The way to achive this from the point of view of projects that repackage geckodriver is to always provide --profile-root.

geckodriver could detect a snap binary and change the default profile root based on that, but it's not quite clear where that should be.

joeyparrish commented 1 year ago

In my case, I'm not repackaging it so much as downloading it automatically so it's not a prerequisite for running tests in my projects.

I'll have to see if there's a stop-gap at a project level that could specify this flag. But this adds extra complexity when it's part of a Selenium grid, as we now have to specify that flag in the options in every client using the grid. And the client specifying a path for profiles on a remote system feels all wrong IMO.

Could snap profiles default to a root like $HOME/.geckodriver/?

whimboo commented 1 year ago

Sorry for the delay but we missed the last update. There is https://bugzilla.mozilla.org/show_bug.cgi?id=1819377 now which covers that issue.