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

javascript - 从 Spectron 访问 WebRequest

如何在 Spectron 中访问 WebRequest 的事件处理程序?

我试过使用app.electron.remote.session.defaultSession,但它返回的承诺似乎永远不会解决。

0 投票
2 回答
2905 浏览

javascript - 测试电子应用程序的文本输入

我正在尝试使用 Electron 和 Spectron 进行测试。

我想在我的正文中写入 contentEditable,然后检查我的测试中的文本是否匹配。到目前为止,我已经成功地为标题编写了一个测试,但我无法找到解决这个问题的方法。

索引.html;

featureTest.js 包括标题的通过测试,以及我在底部想要的测试尝试。

主.js;

包.JSON

0 投票
3 回答
2408 浏览

typescript - 如何为 SpectronClient 实现 Typescript webdriverio?

Spectron是一个用于自动化Electron应用程序的node.js框架。我正在使用 Spectron 以及AVATypescript来进行自动化集成测试。我正在使用AVA 的建议方法来使测试的上下文类型安全,但我无法弄清楚如何在作为webdriverio客户端的 Spectron 客户端属性上获得类型安全。我只能看到 Spectron 打字稿定义文件提供的一些属性,这会导致打字稿转译错误。

这些是我得到的错误:

0 投票
0 回答
250 浏览

selenium - 单击按钮后无法继续

我正在使用 spectron 在 Slack 上模拟测试,如下所示:

1) 打开应用程序。
2) 输入有效域。
3) 单击继续。

我为此目的使用以下脚本:

JavaScript

爪哇

我在 Mac 和 Linux 机器之间使用和不使用 selenium 服务器进行测试。预期的结果应该是单击继续后页面应该继续。

实际发生的是,如果提供了一个有效的域,那么它就会卡住并且永远不会继续。唯一的例外是当我们在 Linux 机器上使用 Spectron 在没有 Selenium 服务器的情况下进行测试时,它本身大约有 20% 的时间会失败。

如果我们在任何情况下提供无效域,它就会继续进行。

以下是在没有 Selenium 服务器的情况下使用 Spectron 时的日志:

以下是在 Selenium 服务器上使用 Java 语言绑定时的日志:

0 投票
2 回答
2137 浏览

javascript - Spectron/WebdriverIO nth child 使用 $$[n] 而不是选择器

我正在尝试使用 Spectron 来测试我的 Electron 应用程序。文档说,当试图找到第 n 个孩子时,您可以使用第 n 个孩子选择器,或者使用匹配选择器的所有孩子,$$然后使用索引运算符,即$$ ("foo")[0]获取第一个 foo。 文档

有了这些知识,我希望输出以下代码:BAR 我无法让它工作,我尝试以下操作:

并得到以下输出:

正如你所看到的,输出的 HTML 确实有几个.foodiv,但是当我尝试访问第一个时,它说fooElements[0]undefined

sideNote(应该不相关):TP是我写的一个函数的别名,toPromise它让我等待 webdriver 的承诺,因为 TypeScript 被它们的实现方式混淆了:

知道我在做什么错吗?还是建议的替代方案?如果可能的话,我宁愿避免使用 nth-child 选择器。

编辑:更改为类

0 投票
0 回答
240 浏览

javascript - 测试由电子应用程序框架组成的应用程序

总的来说,我是 JS 和 electron 的新手,一直是使用 java 和 C# 等语言的后端开发人员,我也曾短暂地参与过一个较旧的 Perl 项目。

我的任务是为我们用电子制作的较新应用程序之一创建测试,我知道它是一个使用铬核心的 JS 程序,并且有一个名为 spectron 的测试框架。当我检查文档时,它似乎告诉我我只能使用它提供的 JavaScript 绑定来测试带有 selenium 的电子。我的问题是,有没有一种方法可以使用 selenium webdriver 和 C# 来测试电子应用程序而不是使用 JavaScript?我在这里有选择吗?

0 投票
1 回答
447 浏览

teamcity - 在 TeamCity 中显示 Spectron-Webdriverio 测试结果

我想在 TeamCity 中显示 Spectron 测试结果。我已按照Webdriverio TeamCity Reporter 页面上的说明进行操作,这些说明是:

并创建一个 wdio.conf.js 文件:

我已将此文件放在项目的顶部。它没有其他条目;我以前从来不需要它。

我还尝试了wdio-teamcity-reporter npm 页面上建议的附加配置。

这是 package.json 中的 Jest 对象:

这是 package.json 中的相关命令(TeamCity 调用):

该测试项目是使用 Typescript 和 Jest 构建的,并且仅包含针对 Electron 应用程序的 e2e Spectron 测试。该应用程序的构建工件是我的测试“构建”的 TeamCity 依赖项。在我的构建中,TeamCity 安装应用程序,运行 Spectron 测试(正在通过),然后卸载应用程序。

目前我只能看到构建日志中的 Jest 控制台输出。虽然有一些隐藏的文物,但我看不到正常的文物。我在想报告包应该产生一个 html 工件。如何显示测试选项卡或其他一些有用的结果集?

0 投票
0 回答
2894 浏览

javascript - WebdriverIO xpath 选择器不起作用

我正在使用 Spectron 和 webdriverIO 测试电子应用程序,当我尝试使用 xpath 定位元素时,它似乎不起作用,因为当我登录控制台时它告诉我元素未定义。html代码如下所示:

从 Chrome 开发者工具复制的 Xpath 是

当我把它放到下面的测试代码中时(使用 Spectron、Mocha 和 Chai)

似乎它不喜欢我在element()函数中使用的基于属性的 Xpath。任何人都知道为什么会这样,或者无论如何我可以在不使用文本的情况下获取元素,因为内部文本是我与文本相关的内容之一?

0 投票
1 回答
995 浏览

e2e-testing - 您如何访问 webdriverio (Spectron) 中的菜单项?

我正在使用 Spectron 和 webdriverio 为 Electron App 构建一组 e2e 测试。我想访问浏览器的菜单栏。即使只是能够让 Spectron 单击“文件”,然后单击“新文件”也很棒。

谢谢你的帮助!

0 投票
1 回答
182 浏览

e2e-testing - Spectron 的性能测量

反正有没有使用 Spectron 来提取像 fps 这样的性能指标?随着复杂性的增加,了解我们的 Electron 应用程序是否保持高性能将非常有用。

我一直在网上四处寻找,但没有看到 WebdriverIO 或 Spectron 的任何内容。我还查看了 Electron API,但似乎没有什么明显的。我想知道,即使是挖掘开发工具的方法也可能奏效。