selenium icon indicating copy to clipboard operation
selenium copied to clipboard

[🚀 Feature]: Support Electron

Open diemol opened this issue 1 year ago • 2 comments

Feature and motivation

Right now, to run tests on electron apps, it pretty much requires a JavaScript dev environment. Electron versions are defined in the development directory, and npm is used to install the correct version of chromedriver via electron-chromedriver.npm

So the proposal is:

  1. Create an ElectronOptions class that is a subclass of ChromiumOptions, where the browser name is electron.
  2. Create an ElectronDriver class that requires an ElectronOptions argument, and errors if the binary has not been set
  3. Create an ElectronService in case the user wants to specify the location of the chromedriver (maybe?)
  4. Selenium Manager downloads the driver from https://github.com/electron/electron/releases based on the specified version, or gets the latest. I think we should not try to automatically determine the version of the electron app; the app is bundled with a specific runtime version but it appears to be quite challenging to actually surface the version of it.

Usage example

ElectronOptions options = new ElectronOptions();
options.browserVersion = "29.0";
options.binary = "/path/to/electron/app";

ElectronDriver driver = new ElectronDriver(options);

diemol avatar May 16 '24 23:05 diemol

I updated the description here. An example of how users are currently working with electron can be found in the Sauce docs

The bindings work should be easy, not certain about the selenium manager piece with the naming conventions

titusfortner avatar May 20 '24 23:05 titusfortner

I can implement this in Python.

Delta456 avatar Oct 04 '24 08:10 Delta456