Skip to content

[🚀 Feature]: Support Electron #13954

@diemol

Description

@diemol

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);

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    In Progress

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions