mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
77 lines
2.4 KiB
Markdown
77 lines
2.4 KiB
Markdown
![]() |
# class: Electron
|
||
|
* langs: js
|
||
|
|
||
|
Playwright has **experimental** support for Electron automation. You can access electron namespace via:
|
||
|
|
||
|
```js
|
||
|
const { _electron } = require('playwright');
|
||
|
```
|
||
|
|
||
|
An example of the Electron automation script would be:
|
||
|
|
||
|
```js
|
||
|
const { _electron: electron } = require('playwright');
|
||
|
|
||
|
(async () => {
|
||
|
// Launch Electron app.
|
||
|
const electronApp = await electron.launch({ args: ['main.js'] });
|
||
|
|
||
|
// Evaluation expression in the Electron context.
|
||
|
const appPath = await electronApp.evaluate(async (electron) => {
|
||
|
// This runs in the main Electron process, |electron| parameter
|
||
|
// here is always the result of the require('electron') in the main
|
||
|
// app script.
|
||
|
return electron.getAppPath();
|
||
|
});
|
||
|
|
||
|
// Get the first window that the app opens, wait if necessary.
|
||
|
const window = await electronApp.firstWindow();
|
||
|
// Print the title.
|
||
|
console.log(await window.title());
|
||
|
// Capture a screenshot.
|
||
|
await window.screenshot({ path: 'intro.png' });
|
||
|
// Direct Electron console to Node terminal.
|
||
|
window.on('console', console.log);
|
||
|
// Click button.
|
||
|
await window.click('text=Click me');
|
||
|
})();
|
||
|
```
|
||
|
|
||
|
Note that since you don't need Playwright to install web browsers when testing Electron, you can omit browser download via setting the following environment variable when installing Playwright:
|
||
|
|
||
|
```sh js
|
||
|
$ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm i -D playwright
|
||
|
```
|
||
|
|
||
|
## async method: Electron.launch
|
||
|
- returns: <[ElectronApplication]>
|
||
|
|
||
|
Launches electron application specified with the [`option: executablePath`].
|
||
|
|
||
|
### option: Electron.launch.executablePath
|
||
|
- `executablePath` <[string]>
|
||
|
|
||
|
Launches given Electron application. If not specified, launches the default Electron
|
||
|
executable installed in this package, located at `node_modules/.bin/electron`.
|
||
|
|
||
|
### option: Electron.launch.args
|
||
|
- `args` <[Array]<[string]>>
|
||
|
|
||
|
Additional arguments to pass to the application when launching. You typically pass the main
|
||
|
script name here.
|
||
|
|
||
|
### option: Electron.launch.cwd
|
||
|
- `cwd` <[string]>
|
||
|
|
||
|
Current working directory to launch application from.
|
||
|
|
||
|
### option: Electron.launch.env
|
||
|
- `env` <[Object]<[string], [string]>>
|
||
|
|
||
|
Specifies environment variables that will be visible to Electron. Defaults to `process.env`.
|
||
|
|
||
|
#### option: Electron.launch.timeout
|
||
|
- `timeout` <[float]>
|
||
|
|
||
|
Maximum time in milliseconds to wait for the application to start. Defaults to `30000` (30 seconds). Pass `0` to disable timeout.
|