问题标签 [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.
javascript - 我可以将webdriver v4测试方法链重写为v5(当前spectron / electron测试)
我使用光谱/电子测试。Spectron 更新更改为 webdriver v5。我有用 v4 方法链编写的 UI 测试。我可以将 webdriver v4 测试方法链重写为 webdriver v5(当前 spectron)吗?
在https://github.com/MichinariNukazawa/lina_dicto/blob/master/lina_dicto/test/input_ui.js
我知道需要替换一些方法和元素 id 选择器。查看我的 spectron 问题网址: https ://github.com/electron-userland/spectron/issues/663
electron - Spectron 不可见的 html 元素
我是 Spectron 的新手,我花了很多时间进行简单的示例测试。我有一个电子应用程序,一开始有加载器,一段时间后它呈现简单的视图。我想检查标题是否等于“欢迎”这是我的测试代码:
结果我得到错误:错误:元素(“h2”)在15000毫秒后仍然不可见我做错了什么?我花了几个小时寻找其他 Spectron 方法来实现我的目标,我尝试采用许多解决方案但没有结果。
node.js - 未知错误:Chrome 无法启动:尝试使用 mocha 测试电子光谱仪时异常退出
我正在尝试测试电子光谱测试。我的项目非常简单,只需克隆一个电子快速启动 repo,然后将代码写入 spec.js,就像从electron-userland/spectron的自述文件中写入的那样
但是当我运行 npm test 时,我遇到了这个错误:
以前我试图重新安装 mocha 和 spectron,但它返回相同的结果。
我的开发依赖项:
我的操作系统信息:
我正在使用 nodejs v12.18.4
你可以在这里克隆我的电子测试项目:电子示例
javascript - Spectron:app.client.click 不是函数
我正在使用 Spectron 测试一个简单的电子应用程序。以下是我的 test.js 有一个测试用例来单击一个元素。
当我运行 mocha 以下是输出。
我是摩卡测试的新手,我无法找到解决方案。提前致谢。
javascript - 无法遍历多个选择器($$,findElements)webdriver.io
我正在尝试将 webdriver.io ( https://webdriver.io/ ) 与 spectron 一起用于电子应用程序。
我能够访问 findElement 或 $ 包含的函数。例如,我可以在这个 findElement ($) 选择器上使用 .click()。
app.client.$('//button[@data-value, "Agree")]').click()
我的应用程序包含 4 个按钮,它们的数据值属性为同意。这个 $ 选择器只会点击第一个。我的目标是遍历所有“同意”按钮并单击所有按钮。
我正在尝试这样做:
app.client.$$('//button[@data-value, "Agree")]').forEach(button => button.click())
但是,这就是说 forEach 函数不存在,就像 app.client.$$ 不返回数组一样,这与本文档所说的相反:https://webdriver.io/docs/api/browser/$$。 html
如果我尝试解决 $$ 返回的承诺,请执行以下操作:
app.client.$$('//button[@data-value, "Agree")]').then(buttons => console.log(buttons))
我得到了 4 个按钮的数组,但只出现了 ELEMENT 标识符、索引和元素对象 ID。它们不包括扩展原型以在它们上运行诸如 .click() 之类的命令。我也找不到使用 webdriver 查询特定 ELEMENT ID 的任何方法。
javascript - 有没有办法从 mocha 框架中的描述块中重用特定的测试用例(它块)(使用 javascript)
我对 mocha 框架相当陌生,我想知道我们是否可以重用来自特定描述块的测试用例。
memory-leaks - 使用 mocha 运行测试会导致内存泄漏和大型字符串结构
我正在尝试建立一个环境来检测我的应用程序中的内存泄漏。
应用程序设置:Angular + Electron
模拟应用程序使用:Mocha + Spectron + Webdriverio
我对我在新设置的应用程序上运行的不同用户场景进行了测试,并定期收集每个进程的内存使用情况。
当应用程序处于空闲状态时,内存使用情况符合预期。但是我遇到了其他测试用例的问题。似乎在使用 mocha 运行测试时,我在内存中得到了意想不到的未知结构。这会导致内存泄漏。
我在下面附上了一个截图(开发工具上的内存选项卡),它最能描述我的困惑。
- 快照 1:在设置应用程序后拍摄 ( 81.8 MB )
- 快照 2:在完成一组测试(正常使用约 10 分钟)并且应用程序已返回启动状态后拍摄(109 MB)
- 快照 3:在我强制 GC 后拍摄(通过“收集垃圾”按钮)(108 MB)
比较快照 1 和 2,我可以看到大部分内存在哪里(~19 MB):在字符串中。
检查保持器告诉我这些字符串链接到(全局处理程序)>(GC 根),选择其中一个字符串并$0
在控制台中执行会导致所有字符串的输出相同:<body>...</body>
. 当我将元素悬停时,它会链接到我的应用程序主体(对于每个字符串)。
“扩展字符串结构”给我一种感觉,这是由于某些模块被多次加载并且它的引用从未被破坏(我的猜测是通过Module()
in加载internal/modules/cjs/loader.js:136
)引起的?
当使用“分配时间线”检查内存时,我没有在未释放的内存下找到这个“大字符串对象”,因为相同的操作会导致在“堆快照>比较”下产生新的“大字符串对象”
当我手动模拟测试场景或通过控制台中的函数模拟点击时,没有内存泄漏。
所有这一切都让我想,我做错了或使用了错误的东西(关于摩卡咖啡)。
我的问题:
- mocha 是否不适合这种设置(即在应用程序关闭之前它会保留一些引用)?
- 如果一个结构只被(全局处理程序)>(GC根)保留,它什么时候会被释放?我在这里读到,它们不是您需要担心的事情,但就我而言,它们是:/
- 怎么会有多个字符串(多个引用?),当调用 via 时
$0
,都引用相同的 DOM 元素(<body>
)? - 为什么这个字符串对象在“分配时间线”中不可见?
- 这种类型的内存泄漏可能是什么原因?
testing - Mocha,Electron:测试中的错误
我正在用 mocha 测试我的电子应用程序并多次出现此错误(我仍然得到它!)。每次我运行程序时它都会返回错误
以防万一这很重要,所说的部分(The process started from chrome location \node_modules...
实际上有整个路径,而不仅仅是那个。
在我的 test.js 文件中,我有来自 spectron 主页的代码,您可以在此处查看。测试文件有什么问题?
node.js - 如何使用 Spectron 执行 getPath?
在我的 Electron 应用程序中,我remote.app.getPath('documents'
用来获取用户当前文档目录的路径。我也使用 Spectron 并且想在我的测试中访问这个目录。
在我的 Spectron 测试中执行此功能的最佳方法是什么?
不幸remote.app
的是未定义,因此不可用,而且Application
它本身也没有任何功能。
node.js - 使用 ava 时 NODE_MODULE_VERSION 不正确
我编写了一个使用nodegit的 Electron 应用程序。对于我的测试部分,我将ava与 Spectron 结合使用来测试我的应用程序。我的所有测试都有效 - 包括在我的应用程序中使用nodegit的函数。
除了上面描述的测试之外,我还制作了一个纯非电子测试文件,我在其中直接导入了 nodegit。
现在通过ava执行这个测试会返回:
版本 82 究竟来自哪里?我只安装了nodejs 14.15.0
,它使用83
了预期的版本。为什么节点认为该版本在我的应用程序中实际运行时不匹配?这就是我的package.json
样子:
我建立nodegit
了自己,在config.gypi
文件中它甚至提到了:
我做了一个超级简单的可重现示例:https ://github.com/Githubber2021/node_module_version-issue
如果这是一个错误或版本 82 来自哪里,谁能解释我?