Spec-Zone.ru › Playwright

ElectronApplication

Представление приложения Electron. Вы можете использовать electron.launch(), чтобы получить экземпляр приложения. С этим экземпляром вы можете управлять основным процессом Electron и работать с окнами Electron:

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 ({ app }) => {
    // This runs in the main Electron process, parameter here is always
    // the result of the require('electron') in the main app script.
    return app.getAppPath();
  });
  console.log(appPath);

  // 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');
  // Exit app.
  await electronApp.close();
})();

Методы​

browserWindow​

Возвращает объект BrowserWindow, соответствующий заданной странице Playwright.

Использование

await electronApplication.browserWindow(page);

Аргументы

  • page Страница

    Страница, для которой нужно получить окно.

Возвращаемое значение

  • Promise<JSHandle>

close​

Закрывает приложение Electron.

Использование

await electronApplication.close();

Возвращаемое значение

  • Promise<void>

context​

Этот метод возвращает контекст браузера, который можно использовать для настройки маршрутизации по всему контексту и т. п.

Использование

electronApplication.context();

Возвращаемое значение

  • BrowserContext

evaluate​

Возвращает возвращаемое значение pageFunction.

Если функция, переданная в electronApplication.evaluate(), возвращает Promise, то electronApplication.evaluate() ожидает разрешения промиса и возвращает его значение.

Если функция, переданная в electronApplication.evaluate(), возвращает не-сеrializable значение, то electronApplication.evaluate() возвращает undefined. Playwright также поддерживает передачу некоторых дополнительных значений, которые не являются сериализуемыми JSON: -0, NaN, Infinity, -Infinity.

Использование

await electronApplication.evaluate(pageFunction);
await electronApplication.evaluate(pageFunction, arg);

Аргументы

  • pageFunction функция | Electron

    Функция, которая должна быть вычислена в основном процессе Electron.

  • arg EvaluationArgument (необязательно)

    Необязательный аргумент, который нужно передать pageFunction.

Возвращаемое значение

  • Promise<Serializable>

evaluateHandle​

Возвращает возвращаемое значение pageFunction как JSHandle.

Единственное отличие между electronApplication.evaluate() и electronApplication.evaluateHandle() заключается в том, что electronApplication.evaluateHandle() возвращает JSHandle.

Если функция, переданная в electronApplication.evaluateHandle(), возвращает Promise, то electronApplication.evaluateHandle() ожидает разрешения промиса и возвращает его значение.

Использование

await electronApplication.evaluateHandle(pageFunction);
await electronApplication.evaluateHandle(pageFunction, arg);

Аргументы

  • pageFunction функция | Electron

    Функция, которая должна быть вычислена в основном процессе Electron.

  • arg EvaluationArgument (необязательно)

    Необязательный аргумент, который нужно передать pageFunction.

Возвращаемое значение

  • Promise<JSHandle>

firstWindow​

Удобный метод, который ожидает открытия первого окна приложения.

Использование

const electronApp = await electron.launch({
  args: ['main.js']
});
const window = await electronApp.firstWindow();
// ...

Аргументы

  • options Объект (необязательно)
    • timeout число (необязательно)

      Максимальное время ожидания в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0 для отключения таймаута. Значение по умолчанию можно изменить, используя browserContext.setDefaultTimeout().

Возвращаемое значение

  • Promise<Страница>

process​

Возвращает основной процесс для этого приложения Electron.

Использование

electronApplication.process();

Возвращаемое значение

  • ChildProcess

waitForEvent​

Ожидает срабатывания события и передает его значение в функцию-предикат. Возвращает значение, когда предикат возвращает истинное значение. Вызовет ошибку, если приложение будет закрыто до срабатывания события. Возвращает значение данных события.

Использование

const windowPromise = electronApp.waitForEvent('window');
await mainWindow.click('button');
const window = await windowPromise;

Аргументы

  • event строка

    Имя события, такое же, как обычно передается в *.on(event).

  • optionsOrPredicate функция | объект (необязательно)

    • predicate функция

      получает данные события и разрешает ожидание, когда значение должно разрешиться.

    • timeout число (необязательно)

      максимальное время ожидания в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0 для отключения таймаута. Значение по умолчанию можно изменить, используя browserContext.setDefaultTimeout().

    Либо предикат, получающий событие, либо объект параметров. Необязательно.

Возвращаемое значение

  • Promise<объект>

windows​

Удобный метод, который возвращает все открытые окна.

Использование

electronApplication.windows();

Возвращаемое значение

  • Массив<Страница>

События​

on('close')​

Это событие генерируется, когда процесс приложения завершен.

Использование

electronApplication.on('close', data => {});

on('console')​

Вызывается, когда JavaScript в главном процессе Electron вызывает один из методов API консоли, например console.log или console.dir.

Переданные в console.log аргументы доступны в обработчике события ConsoleMessage.

Использование

electronApp.on('console', async msg => {
  const values = [];
  for (const arg of msg.args())
    values.push(await arg.jsonValue());
  console.log(...values);
});
await electronApp.evaluate(() => console.log('hello', 5, { foo: 'bar' }));

Данные события

  • ConsoleMessage

on('window')​

Это событие генерируется для каждого окна, которое создано и загружено в Electron. Оно содержит Страницу, которую можно использовать для автоматизации Playwright.

Использование

electronApplication.on('window', data => {});

Данные события

  • Страница

© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-electronapplication

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API