我们如何使用Puppeteer编写脚本/自动执行电子应用程序?

时间:2019-02-27 00:32:13

标签: javascript automation electron puppeteer e2e-testing

有可能吗?那里有指南吗?基本上,我想对Electron应用程序进行E2E测试,并编写用户交互脚本,即创建一个在Electron应用程序内部进行交互的“机器人”或“木偶”用户。

1 个答案:

答案 0 :(得分:1)

与操纵up无关,但Electron具有spectron,可让您使用chrome驱动程序测试电子应用,并转到其home page.api doc

Spectron建立在ChromeDriver和WebDriverIO之上。因此,如果您已经在使用puppeteer,则语法和用法会很熟悉。

快速入门Spectron

快速入门的命令,

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

因此,我们在该文件夹中包含了spectron,mocha和quickstart文件。现在,让我们在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)