问题标签 [wdio-v6]

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 回答
174 浏览

typescript - 如何解决 webdriver.io 引入的类型冲突

我正在尝试使用 webdriver.io 在我的 TypeScript SPA 上设置测试。我设置了 wdio 但由于 wdio 引入的新类型引起的各种类型冲突,无法编译 typescript。

例如 wdio 引入了 $ ,它与 jQuery 中的 $ 冲突:

Node还引入了各种冲突:

而且,更微妙的是,节点类型改变了 a 的返回类型setTimeout

我肯定想使用 TypeScript 来构建测试和应用程序,因为我想在测试中利用应用程序类型。我认为这意味着我需要串联构建它们。

是否存在任何解决方法?

0 投票
1 回答
191 浏览

mocha.js - 如果“it”部分之一失败,如何停止测试运​​行?

我的测试套件在“描述”中包含几个“它”部分。

如果其中一个“it”部分失败(例如,如果它找不到元素) - 它会直接跳到下一个“it”部分并继续测试。

如果“it”部分失败,我只想让测试停止运行并标记为失败。

你怎么做到这一点?

0 投票
0 回答
506 浏览

docker - 如何在 dockerized 环境中使用 webdriverio 测试节点应用程序 (ERR_SSL_PROTOCOL_ERROR)

我想要三个连接的 docker 容器(在构建服务器上运行它):

  1. 我的应用程序(名称:app)
  2. 浏览器(在本例中为 chrome;名称:selenium)
  3. 我的 End2End/UI 测试(名称测试员)

但是测试没有运行。来自测试器容器的当前错误消息是“由于未知错误,请求失败,状态为 500:net::ERR_SSL_PROTOCOL_ERROR”

文件结构:

这里是我的文件:“docker-compose.yml”:

“Dockerfile”:

“wdio.conf.js”:

“测试/规范/basic.js”:

“app.js”:

“包.json”:

“日志中的更大片段”:

一些提示:

  • 当我从测试仪或硒容器中调用 curl http://app:3000 时,我按预期收到了 HTML。
  • 当我在测试中导航到谷歌时,我收到了谷歌代码
  • 感谢您的时间!
0 投票
0 回答
59 浏览

node.js - 在 Selenium Grid 4 alpha 6 中访问 c​​hrome 驱动程序开发工具,

我设置了一个 selenium grid 4 并有一个本地代码运行访问 chrome devtools 的测试用例(例如性能、加载大小等)

我似乎找不到让它工作的方法。这甚至可能吗?没有太多的文档。或者,如果有,我不明白他们。

0 投票
2 回答
1192 浏览

angular - WebdriverIO 和 Angular,在 typescript 中编写导入类的 e2e 测试(不能在模块外使用 import 语句)

我正在尝试使一组 wdio 的 e2e 测试正常工作。一些测试使用一些用 typescript 编写的实用程序类。

编译测试时,它会遇到此错误:

上面的输出来自WebdriverIO Boilerplate Projects之一的克隆。我所做的唯一更改(除了 chromedriver 更新)是将此示例中的测试更改为 typescript 并使用实用程序类。

我已经尝试了所有我能找到的选项,但没有一个能解决问题,只是运行这个简单的测试。特别是,似乎没有任何 babel 配置被拾取。

源代码位于https://github.com/rgansevles/angular-wdio6-builder-demo(克隆自https://github.com/migalons/angular-wdio6-builder-demo

要重现,请克隆我的 repo 并运行:

有谁知道如何让这个样本与 import 语句一起工作?

提前致谢,

顺便说一句,这是它在 e2e/test/specs/basic.spec.ts 上失败的测试文件:

0 投票
2 回答
437 浏览

webdriver-io - Webdriverio 6 - 如何右键单击 X 和 Y 位置

Webdriverio 6 - 如何右键单击 X 和 Y 位置。

在 WebdriverIO 版本 6 文档中找不到右键单击命令。

这是在 WebdrivewrIO v4 中显示但在 V6 中不起作用的代码

错误显示是

有没有办法在 WebdriverIO V6 中右键单击。请帮忙。

0 投票
1 回答
310 浏览

reactjs - webdriverIO v6:browser.getCurrentTabId() 和 browser.windowHandles() 不是版本 6 中的函数。替换是什么?

包.json

这是我们在版本 5 中使用的方法getcurrentTabIDwindowHandles方法,但在 v6 中它不是函数。所以我该怎么做?请帮忙谢谢

0 投票
0 回答
60 浏览

javascript - 威迪奥,摩卡咖啡。如何创建(随机生成)全局变量并在每次测试中使用它

请帮助信息在我的工作中,我使用 webdriver.io 和 mocha。现在我的工作文件夹有这样的结构

  1. 测试

1.1 - pageobjects - 带有 page.js 类的文件夹

1.2 - 资源 - 包含 - 带有值的 index.js

1.3 - 规格 - 带有测试的文件夹

1.4 - 实用程序 - 包含带有常用方法的 helper.js

当然 wdio.conf.js 是存在的

案子

在规范中创建了 test1.js 和 test2.js

test1.js 动作

  1. 登录名(姓名,密码)

  2. 登出

test2.js 动作

  1. 登录名(姓名,密码)

  2. 买咖啡

  3. 登出

我通过运行规范文件夹运行测试,测试一个接一个地执行

所以问题是如何只创建一次(意味着我生成随机字符串并初始化变量)并在每次测试中使用它。换句话说,我生成密码(生成字符串)并在 test1.js 登录操作中使用它,然后在 test2.js 登录操作中使用它,并且 test2.js 中的这个密码是相同的。

提前谢谢!!

0 投票
2 回答
102 浏览

javascript - 如何访问黄瓜“步骤”对象的 json 的所有“文本”属性并将它们记录到控制台?

我正在尝试将黄瓜“步骤”的步骤描述的字符串/正则表达式记录到控制台。这是一个示例步骤

...这是步骤定义的第一行

我正在尝试在 webdriverio 的特定于黄瓜的钩子的上下文中,使用作为参数提供的“步骤”对象的字符串表示来将“鉴于 Alice 饿了”记录到控制台。跑步

...产生这个输出:

但是,当我使用

...我得到的只是

我已经尝试了这两个选项:

在这两种情况下,这都会产生以下结果:

我究竟做错了什么?

0 投票
1 回答
1116 浏览

typescript - @wdio/sync:TypeError:hook.apply 不是函数

我正在使用带有 typescript 和 Jasmine 的 webdriverIO 6,最近(在将 @wdio/sync 升级到 6.10.11 之后,我不确定这是否是巧合)我注意到我在测试运行期间遇到了一些新错误 - 之前在每个“它”之后:

在 wdio/sync 升级到 6.11.00 之后,它仍然是这样。

这是我的堆栈:

在 wdio.conf.js 中,我只使用了一个钩子,这不是导致问题的原因,因为它最后只触发一次(onComplete())并且评论它没有任何区别。

我还使用了扩展 WDIOreporter 的 CustomReporter 并在那里使用 onTestPass() 和 onTestFail() 方法,但即使禁用整个报告器也没有任何区别。

我查看了 executeHooksWithArgs.js:21:31 但这对我没有任何意义,除了这部分负责钩子。

我尝试回到@wdio/sync 6.6.0(我在升级之前使用的)失败了,在同一个文件中出现了类似的错误:

困扰我的是我有另一个具有类似设置且没有错误的项目,我正在同时升级它们。我什至不知道该往哪里看。