问题标签 [spectron]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2148 浏览

javascript - Spectron 和 electron 没有 exe 文件

我正在尝试使用 Electron 构建应用程序。

我需要基于电子环境并使用电子包进行一些单元测试。

这样,我使用 spectron 来模拟我的应用程序。

在文档中,写到我必须将我的可执行文件所在的路径放入“路径”属性中。我现在没有可执行文件,我处于开发模式。

这是我根据另一个问题尝试过的:

提示上没有出现任何内容,并且以下测试失败告诉我无法在未定义的对象上获取 getWindowCount(显然,应用程序未实例化):

有人知道我应该在这条路上放什么来使我的测试环境正常工作吗?

PS:我正在使用 mocha chai 和 sinon。

谢谢你的帮助

0 投票
1 回答
1765 浏览

electron - 如何使用 spectron 与电子应用程序的控件进行交互

我的项目正在使用 Electron 框架。开发人员已经构建并给了我一个电子 exe。当您打开 exe 时,它​​会显示一个登录表单,这是我的应用程序的入口点。该表单基本上有 3 个控件:用户名和密码文本框以及“登录”按钮。现在我必须在该页面上执行功能测试。

我的要求是在用户名和密码文本框中输入一些文本,然后单击提交按钮。(在这种情况下,假设是成功登录。)登录后,我会看到一条欢迎消息,我必须对其进行测试。

您如何从电子应用程序获取文本框并提交按钮引用并对它们执行操作?

我试过下面的代码。它打开了我的电子 exe,但什么也不做,测试用例通过了。

输出显示测试用例已通过,但我没有看到在用户名字段或密码字段中输入任何文本,并且未单击该按钮。

我的 package.json

0 投票
1 回答
711 浏览

javascript - 安装 Spectron

我尝试使用以下命令安装Spectron

但我得到这个错误消息:

npm 错误!Windows_NT 6.1.7601 npm 错误!argv "C:\Program
Files\nodejs\node.exe" "C:\Program Files\nodejs\
node_modules\npm\bin\npm-cli.js" "install" "--save-dev" "spectron"
npm ERR !节点 v6.9.2 npm 错误!npm v3.10.9 npm 错误!代码 ENOSELF

npm 错误!拒绝将 spectron 安装为自身 npm
ERR 的依赖项!npm 错误!如果您需要帮助,您可以在以下位置报告此错误:npm ERR!
https://github.com/npm/npm/issues

npm 错误!请在任何支持请求中包含以下文件:
npm ERR!C:\spectron-master\npm-debug.log

我做错了什么?

0 投票
2 回答
1314 浏览

electron - 使用 Spectron 测试电子应用重新启动时丢失 webdriverio 会话

我正在使用spectron对我的电子应用程序运行集成测试。除了尝试测试应用程序设置在应用程序重新启动之间是否正确保留之外,一切工作正常。

在运行测试时,我的应用程序会为每个测试启动一个新的临时userData目录,以确保测试是隔离的。这意味着持久性测试需要理想地发生在单个测试中,为了实现这一点,我必须在测试中间重新启动应用程序。有一种app.restart方法,所以这必须得到支持,对吗?

我正在使用以下 Spectron 测试代码:

但是我收到以下错误:

这样做的正确方法是什么?我还尝试停止 Application 实例并启动一个具有类似结果的新实例。

0 投票
0 回答
467 浏览

javascript - 使用 Spectron 测试 Visual Studio 代码扩展 - 如何确定 VSCode 何时准备就绪?

目标:使用 Spectron 对 VSCode 扩展执行真正的端到端测试。

例如,我安装了vim扩展。

我改编了 Spectron 的README中的用法示例,如下所示:

问题:如何准确确定 VSCode 是否准备就绪。

打电话client.waitUntilWindowLoaded()是不够的。在某些测试运行中,通过命令面板 (F1) 输入文本client.keys(...)不会建议任何命令。

我不想在pause(...)之后使用,waitUntilWindowLoaded()因为它浪费了有用的时间,并且在系统负载过重时可能仍然不够用。

目前,我只是想出了.waitUntilTextExists('span', 'OPEN EDITORS', 10000)大部分时间似乎都有效的方法。有时它会遇到超时。

是否有任何更可靠的(在 DOM 中)由 VSCode 设置并且可以由 Spectron 检查,表明 VSCode 真的准备好了?

0 投票
1 回答
1134 浏览

node.js - 为什么这些柴测试不会失败?

我们使用 spectron 和 WebdriverIO 对电子应用程序进行了一些简单的“这是否真的有效”的 chai 测试。我们开始的示例代码来自

https://github.com/jwood803/ElectronSpectronDemohttps://github.com/jwood803/ElectronSpectronDemo/issues/2中所述,chai-as-promised 测试没有发现不匹配,所以我想我会添加一些额外的测试找出为什么 Chai 没有失败的测试,其中电子应用程序的文本与预期的单元测试文本不匹配。

让我们从非常简单的事情开始,其余代码位于https://github.com/drjasonharrison/ElectronSpectronDemo

第一个单元测试失败,第二个成功。

当我们将断言放入一个函数中时,它仍然会检测到失败:

所以现在进入 electron、webdriverio 和 spectron 的世界,应用程序标题应该是“Hello World!”,所以这应该失败,但它通过了:

嗯,让我们尝试一个更熟悉的测试:

输出:

成功了吗?什么?为什么?如何?

0 投票
2 回答
673 浏览

javascript - Spectron 测试顺序动作

我正在用 Spectron 测试电子应用。我在文档示例中找到了有关如何获取窗口数量的信息,这非常简单。但是我正在寻找的是如何在单击另一个元素后检查一个元素的状态。在这里,我试图检查应用程序在最小化后是否可见。但是这个测试总是通过,无论是真的还是假的。

我正在使用带有 chai 断言的 mocha。

请告知我单击另一个元素后如何检查应用程序(或特定元素是否可见)。

0 投票
0 回答
345 浏览

webdriver-io - 如 Webdriver-IO 文档中所述,无法使用 $ 和 $$ 链接选择器

我正在使用 Spectron 的 WebdriverIO,它在 node_modules 中的版本为 4.7.1。我试图从一个元素中获取文本,但逐渐选择它给我带来了麻烦。

我可以在开发工具中“复制-> 选择器”来给我一个非常具体的路径。如果我.element(longPath).

对我不起作用的是链接$$$(或element/ elements):

访问[0]给了我undefined. 如果我注销 的解析值$$($storageItem),我会得到:

任何我无法链接的想法,如此处的示例所示:http ://webdriver.io/v4.7/api/utility/$.html

非常感谢。

0 投票
2 回答
686 浏览

webdriver - 如何使用 Spectron 连接到现有的 Electron 应用程序

是否可以使用 Spectron 连接到现有的 Electron 应用程序?我不太确定如何实施这个..

我希望能够做类似的事情:

有一些文档可以在 Spectron 中使用debuggerAddress选项,但我不确定这是否是我正在寻找的,因为 debuggerAddress 的参数是 url,例如:'127.0.0.1:1234'。

0 投票
1 回答
323 浏览

mocha.js - Spectron 和启动电子应用

在尝试为我的电子应用程序运行第一个 mocha 测试时,出现错误:

在此处输入图像描述

我很确定这与应用程序的一般运行方式有关。使用“电子”时。开始,没有问题。执行“npm start”时,我得到与图片相同的错误。很可能它与 db 添加到 Windows 的电子(PouchDB + sqlite)的方式有关(重新编译)

由于为电子的 PouchDB 配置 sqlite 花了我一段时间,我必须使用这个工具,你认为有办法让 mocha 在这种情况下运行吗?