我们如何使用Puppeteer编写/自动化Electron应用程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们如何使用Puppeteer编写/自动化Electron应用程序?相关的知识,希望对你有一定的参考价值。

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

答案

与puppeteer无关,但Electron有光谱,它允许你使用镀铬驱动器测试电子应用程序,前往他们的home page.api doc

Spectron建立在ChromeDriver和WebDriverIO之上。因此,如果您已经在使用puppeteer,那么语法和用法会让您感到熟悉。

Quick Start 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)

以上是关于我们如何使用Puppeteer编写/自动化Electron应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

使用CucumberJS / Puppeteer,如何使用多个场景扩展Page对象?

基于Puppeteer前端自动化框架PO模式,断言(如何更简便逻辑的写测试代码)

使用Puppeteer进行数据抓取——简单的示例

如何从 Puppeteer 将文本输入到 Flash TextArea 中?

是什么原因让华为测试工程师都说puppeteer比selenium好呢?

前端UI自动化puppeteer实践