Как мы пишем сценарий / автоматизируем приложение Electron с помощью Puppeteer? - PullRequest
0 голосов
/ 27 февраля 2019

Возможно ли это?Где-нибудь есть гид?По сути, я хотел бы провести E2E-тестирование приложения Electron и составить сценарий взаимодействия с пользователем, т. Е. Создать пользователя «бота» или «марионетки», который взаимодействует внутри приложения Electron.

1 Ответ

0 голосов
/ 27 февраля 2019

Не относится к кукловоду, но у Electron есть спектр, который позволяет вам тестировать электронные приложения с помощью драйвера chrome, перейдите на их домашнюю страницу . и api doc .

Spectron был построен на основе ChromeDriver и WebDriverIO.Так что, если вы уже используете кукольника, синтаксис и использование будут вам знакомы.

Быстрый старт Spectron

Команды для быстрого начала работы,

mkdir electron-test && cd electron-test    
git clone https://github.com/electron/electron-quick-start
yarn init -y
yarn add -D spectron mocha

Итак, мыСпектрон, мокко и файл быстрого запуска внутри этой папки.Теперь давайте создадим некоторую спецификацию на пути test/spec.js.

const Application = require("spectron").Application;
const assert = require("assert");

describe("Verify a visible window is opened with a title", function() {
  before(async function() {
    this.app = new Application({
      // your app or electron executable path
      path: "node_modules/electron/dist/electron",
      // path to main.js file location
      args: ["electron-quick-start/"]
    });
    await this.app.start();
  });
  after(async function() {
    this.app.stop();
  });

  it("is visible", async function() {
    const isVisible = await this.app.browserWindow.isVisible();
    assert.equal(isVisible, true);
  });

  it("gets the title", async function() {
    const title = await this.app.client.getTitle();
    assert.equal(title, "Hello World!");
  });
});

Давайте запустим ее,

➜  electron-test ./node_modules/.bin/mocha


  Verify a visible window is opened with a title
    ✓ is visible
    ✓ gets the title


  2 passing (665ms)
...