问题标签 [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 投票
1 回答
228 浏览

electron - Spectron 可用方法无法正常工作

我在 webdriverIO 上使用 spectron 并尽量避免client.pause()等待和使用的方法,client.waitForExist但是应用程序关闭得很快,我不想通过隐式等待waitForWindowLoadingwaitUnitlText

有人可以指导我朝着正确的方向实现它吗?

提前谢谢了

0 投票
0 回答
1260 浏览

jestjs - 使用 Jest 进行测试时使用 Spectron 来“模拟”Electron

我正在使用 Jest 测试 Electron 应用程序的库代码。Jest 做了一些奇怪的事情require,这干扰了 Electron 需要做的事情......我认为。

Spectron 旨在允许您通过库调用创建 Electron 应用程序,从而允许您从测试框架内访问各种 Electron 位。

最终,我需要能够使用来自 Electronrequire('electron')一些真实的东西进行模拟(比如创建浏览器窗口),主要是为了让各种库位可以按预期工作。

这是它应该工作的样子:

在 package.json 中:

测试/模拟/electron.js:

根据文档,应该可以访问与正常操作下app.electron相同的内容。require('electron')

一些测试:

但是,这失败了,因为app.electron它是未定义的,尽管App它本身已定义:

不太确定从这里去哪里。寻找任何解决方案

0 投票
0 回答
235 浏览

babeljs - 使用 Spectron 时,如何在电子应用程序的 main.js 之前应用 babel 配置?

我正在使用 jest 运行一个使用 Spectron 启动 Electron 应用程序的测试脚本。加载我的 babel 配置的正确方法是什么?通常我这样启动应用程序:npx electron -r @babel/register .(npm start in package.json)

我使用 Spectron 的测试脚本尝试像这样初始化它:

但是main.js在第一个 import 语句中出现 SyntaxError 崩溃。显然-r @babel/register没有加载。

如果我在终端上手动path构造一个命令:args

node_modules/electron/dist/electron -r @babel/register src/main.js

该应用程序启动得很好。但是查看 chromeDriver 日志,我看到这个命令可能与实际调用的不同。从日志:

我现在的 hacky 解决方法是specmain.js使用以下内容制作脚本:

然后我的测试脚本成功启动了应用程序,现在使用:

在 Spectron 的背景下,@babel/register提前要求的好方法是什么?main.js

0 投票
1 回答
398 浏览

testing - 如何在 Spectron 中“等待”关闭窗口?

我正在开发处理模态窗口中的一些逻辑的 Electron 应用程序。这些窗口正在等待异步操作解决,然后自动关闭。现在我正在努力使用 Spectron 和 Jest 测试这种行为:似乎没有方法可以捕捉窗口的关闭然后继续进行其他测试。

目前我的代码是

它有效,但我发现它非常反模式。我想知道是否有任何方法可以做类似的事情

任何帮助表示赞赏。

0 投票
1 回答
33 浏览

electron - 如何在摩卡测试中添加“全局等待”

在此处输入图像描述

我正在尝试使用 spectron 和 mocha 测试我的电子应用程序;我的应用程序将在用户登录后关闭第一个窗口,所以我需要添加一些“等待操作”来等待第二个窗口出现。但似乎 setTimeout 的回调工作异常。

0 投票
1 回答
1016 浏览

electron - 在 GitlabCI 上运行测试时 ChromeDriver 出现问题

我是 Gitlab CI 的新手,我正在尝试在提交时自动测试我的应用程序。

我不知道它是如何工作的,我知道它使用 docker 映像并运行您想要的命令。

我选择 node:8 图像开始(我正在做一个电子项目,也许有更好的图像)

问题是,如果我在我的计算机上运行命令“npm test”,它运行良好并且所有测试都通过,但它不适用于 gitlab ci 作业,我不知道为什么。

我在windows上开发这个,docker镜像使用linux,这可能是个问题吗?

该错误总是发生在 ChromeDriver 上。我查看了文件夹,发现只有一个exe,所以我下载了驱动程序的linux发行版并将其插入其中。我还在运行测试之前执行了驱动程序(在我的计算机中这不是必需的,它会自动执行),但仍然得到相同的错误。

我很迷茫。有什么替代方法可以工作吗?也许另一个码头形象?

我的 gitlab-ci.yml:

获得的错误: 错误 测试代码(如果这是相关的) 测试

0 投票
1 回答
640 浏览

electron - 我的 spectron app.client 不包含所有方法

我正在尝试使用 spectron 和 mocha 测试我的电子应用程序,这是我的文件“first.js”,其中包含我的测试:

我的第一个测试通过了,但第二个测试我想点击一个元素,但我的 app.client 不包含 .click 方法,也没有 getText 或 getHTML。我尝试从 webdriverio 导入浏览器,但这是同样的问题,我在测试时收到错误消息说这些方法不存在。我已经把 spectron 文档弄红了,他们经常使用 .click 和 .getText 方法,为什么我没有得到它们?我已经按照文档中的说明导入了 spectron。

谢谢。

0 投票
0 回答
275 浏览

electron - app.browserWindow 在使用 Spectron 测试电子应用程序期间返回 TypeError

我正在尝试使用 Spectron 和 mocha 在我的电子应用程序上运行简单的测试。但是,每当我尝试使用browserWindow API 时,我都会收到以下形式的错误:

TypeError:无法读取未定义的属性“.....”

我在互联网上做了一些研究。我发现的一些建议解决方案是确保nodeIntegration设置为 true,并且DevTools 未在应用程序窗口中打开。我已确保满足这两个标准,但我仍然收到相同的错误。我在这里想念什么?我附上我的代码以供参考。

main.js

测试.js

问题出现在线路上this.app.client.waitUntilWindowLoaded().browserWindow.isFocused()

0 投票
0 回答
152 浏览

mocha.js - Spectron 测试以奇怪的原因失败

Spectron 的新用户 ***

我正在尝试编写一个简单的测试来使用 Spectron 检查应用程序窗口计数。下面是代码。

})

不幸的是,测试失败的原因很奇怪:

错误:超过 2000 毫秒的超时。对于异步测试和钩子,确保调用了“done()”;如果返回 Promise,请确保它已解决。

此外,我还看到多个黑色进程发送垃圾邮件,我无法捕捉应用程序窗口焦点。

感谢帮助!

谢谢

0 投票
0 回答
245 浏览

electron - Spectron 从动态文本框中获取文本数据

所以我下载了一个使用电子框架的应用程序。

我设法单击所有需要的按钮来生成一些与服务器相关的数据。

此测试运行大约 2 分钟,并在此时间范围内生成带有文本框的文本。

不幸的是,我无法访问这些数据,因为它找不到它的路径。

有什么办法吗?

附上该应用程序的屏幕截图及其 HTML 代码。

同样,这是我的代码:

// // 让数据;

})

我要下载的数据在这个文本框中(见图)在此处输入图像描述