问题标签 [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.
electron - Spectron 可用方法无法正常工作
我在 webdriverIO 上使用 spectron 并尽量避免client.pause()
等待和使用的方法,client.waitForExist
但是应用程序关闭得很快,我不想通过隐式等待waitForWindowLoading
waitUnitlText
有人可以指导我朝着正确的方向实现它吗?
提前谢谢了
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
它本身已定义:
不太确定从这里去哪里。寻找任何解决方案
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
testing - 如何在 Spectron 中“等待”关闭窗口?
我正在开发处理模态窗口中的一些逻辑的 Electron 应用程序。这些窗口正在等待异步操作解决,然后自动关闭。现在我正在努力使用 Spectron 和 Jest 测试这种行为:似乎没有方法可以捕捉窗口的关闭然后继续进行其他测试。
目前我的代码是
它有效,但我发现它非常反模式。我想知道是否有任何方法可以做类似的事情
任何帮助表示赞赏。
electron - 在 GitlabCI 上运行测试时 ChromeDriver 出现问题
我是 Gitlab CI 的新手,我正在尝试在提交时自动测试我的应用程序。
我不知道它是如何工作的,我知道它使用 docker 映像并运行您想要的命令。
我选择 node:8 图像开始(我正在做一个电子项目,也许有更好的图像)
问题是,如果我在我的计算机上运行命令“npm test”,它运行良好并且所有测试都通过,但它不适用于 gitlab ci 作业,我不知道为什么。
我在windows上开发这个,docker镜像使用linux,这可能是个问题吗?
该错误总是发生在 ChromeDriver 上。我查看了文件夹,发现只有一个exe,所以我下载了驱动程序的linux发行版并将其插入其中。我还在运行测试之前执行了驱动程序(在我的计算机中这不是必需的,它会自动执行),但仍然得到相同的错误。
我很迷茫。有什么替代方法可以工作吗?也许另一个码头形象?
我的 gitlab-ci.yml:
electron - 我的 spectron app.client 不包含所有方法
我正在尝试使用 spectron 和 mocha 测试我的电子应用程序,这是我的文件“first.js”,其中包含我的测试:
我的第一个测试通过了,但第二个测试我想点击一个元素,但我的 app.client 不包含 .click 方法,也没有 getText 或 getHTML。我尝试从 webdriverio 导入浏览器,但这是同样的问题,我在测试时收到错误消息说这些方法不存在。我已经把 spectron 文档弄红了,他们经常使用 .click 和 .getText 方法,为什么我没有得到它们?我已经按照文档中的说明导入了 spectron。
谢谢。
electron - app.browserWindow 在使用 Spectron 测试电子应用程序期间返回 TypeError
我正在尝试使用 Spectron 和 mocha 在我的电子应用程序上运行简单的测试。但是,每当我尝试使用browserWindow API 时,我都会收到以下形式的错误:
TypeError:无法读取未定义的属性“.....”
我在互联网上做了一些研究。我发现的一些建议解决方案是确保nodeIntegration设置为 true,并且DevTools 未在应用程序窗口中打开。我已确保满足这两个标准,但我仍然收到相同的错误。我在这里想念什么?我附上我的代码以供参考。
main.js
测试.js
问题出现在线路上this.app.client.waitUntilWindowLoaded().browserWindow.isFocused()
mocha.js - Spectron 测试以奇怪的原因失败
Spectron 的新用户 ***
我正在尝试编写一个简单的测试来使用 Spectron 检查应用程序窗口计数。下面是代码。
})
不幸的是,测试失败的原因很奇怪:
错误:超过 2000 毫秒的超时。对于异步测试和钩子,确保调用了“done()”;如果返回 Promise,请确保它已解决。
此外,我还看到多个黑色进程发送垃圾邮件,我无法捕捉应用程序窗口焦点。
感谢帮助!
谢谢