问题标签 [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.
typescript - 如何解决 webdriver.io 引入的类型冲突
我正在尝试使用 webdriver.io 在我的 TypeScript SPA 上设置测试。我设置了 wdio 但由于 wdio 引入的新类型引起的各种类型冲突,无法编译 typescript。
例如 wdio 引入了 $ ,它与 jQuery 中的 $ 冲突:
Node还引入了各种冲突:
而且,更微妙的是,节点类型改变了 a 的返回类型setTimeout
我肯定想使用 TypeScript 来构建测试和应用程序,因为我想在测试中利用应用程序类型。我认为这意味着我需要串联构建它们。
是否存在任何解决方法?
mocha.js - 如果“it”部分之一失败,如何停止测试运行?
我的测试套件在“描述”中包含几个“它”部分。
如果其中一个“it”部分失败(例如,如果它找不到元素) - 它会直接跳到下一个“it”部分并继续测试。
如果“it”部分失败,我只想让测试停止运行并标记为失败。
你怎么做到这一点?
docker - 如何在 dockerized 环境中使用 webdriverio 测试节点应用程序 (ERR_SSL_PROTOCOL_ERROR)
我想要三个连接的 docker 容器(在构建服务器上运行它):
- 我的应用程序(名称:app)
- 浏览器(在本例中为 chrome;名称:selenium)
- 我的 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。
- 当我在测试中导航到谷歌时,我收到了谷歌代码
- 感谢您的时间!
node.js - 在 Selenium Grid 4 alpha 6 中访问 chrome 驱动程序开发工具,
我设置了一个 selenium grid 4 并有一个本地代码运行访问 chrome devtools 的测试用例(例如性能、加载大小等)
我似乎找不到让它工作的方法。这甚至可能吗?没有太多的文档。或者,如果有,我不明白他们。
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 上失败的测试文件:
webdriver-io - Webdriverio 6 - 如何右键单击 X 和 Y 位置
Webdriverio 6 - 如何右键单击 X 和 Y 位置。
在 WebdriverIO 版本 6 文档中找不到右键单击命令。
这是在 WebdrivewrIO v4 中显示但在 V6 中不起作用的代码
错误显示是
有没有办法在 WebdriverIO V6 中右键单击。请帮忙。
reactjs - webdriverIO v6:browser.getCurrentTabId() 和 browser.windowHandles() 不是版本 6 中的函数。替换是什么?
包.json
这是我们在版本 5 中使用的方法getcurrentTabID
和windowHandles
方法,但在 v6 中它不是函数。所以我该怎么做?请帮忙谢谢
javascript - 威迪奥,摩卡咖啡。如何创建(随机生成)全局变量并在每次测试中使用它
请帮助信息在我的工作中,我使用 webdriver.io 和 mocha。现在我的工作文件夹有这样的结构
- 测试
1.1 - pageobjects - 带有 page.js 类的文件夹
1.2 - 资源 - 包含 - 带有值的 index.js
1.3 - 规格 - 带有测试的文件夹
1.4 - 实用程序 - 包含带有常用方法的 helper.js
当然 wdio.conf.js 是存在的
案子
在规范中创建了 test1.js 和 test2.js
test1.js 动作
登录名(姓名,密码)
登出
test2.js 动作
登录名(姓名,密码)
买咖啡
登出
我通过运行规范文件夹运行测试,测试一个接一个地执行
所以问题是如何只创建一次(意味着我生成随机字符串并初始化变量)并在每次测试中使用它。换句话说,我生成密码(生成字符串)并在 test1.js 登录操作中使用它,然后在 test2.js 登录操作中使用它,并且 test2.js 中的这个密码是相同的。
提前谢谢!!
javascript - 如何访问黄瓜“步骤”对象的 json 的所有“文本”属性并将它们记录到控制台?
我正在尝试将黄瓜“步骤”的步骤描述的字符串/正则表达式记录到控制台。这是一个示例步骤
...这是步骤定义的第一行
我正在尝试在 webdriverio 的特定于黄瓜的钩子的上下文中,使用作为参数提供的“步骤”对象的字符串表示来将“鉴于 Alice 饿了”记录到控制台。跑步
...产生这个输出:
但是,当我使用
...我得到的只是
我已经尝试了这两个选项:
在这两种情况下,这都会产生以下结果:
我究竟做错了什么?
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(我在升级之前使用的)失败了,在同一个文件中出现了类似的错误:
困扰我的是我有另一个具有类似设置且没有错误的项目,我正在同时升级它们。我什至不知道该往哪里看。