问题标签 [nightwatch]

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

node.js - Nightwatchjs 测试在 `before` 钩子完成之前运行

我有一个使用此代码设置的 nightwatchjs 项目。

...allTests.reduce部分正在向对象添加更多测试。这是运行的第一个测试。

我正在使用此脚本开始测试nightwatch automation.test.js -e chrome

before我遇到的问题是第一个测试在钩子完成之前开始运行。如果完成时间过长,则第一个测试在等待显示元素时会失败。 browser.waitForElementVisible('iframe', RESPONSE_WAIT_TIME * 3);

如何强制 nightwatchjsbefore在运行自动化测试之前等待钩子完成?

0 投票
1 回答
75 浏览

javascript - 如何验证 Nightwatch 中段落元素中的文本?

我在页面上有一个文本,我必须验证该文本是否存在。元素的 html 是<p class="subfooter__text" data-v-79ab1348=""> The Tesla is part of the <a href="//www.xyz.com/" target="_blank" rel="noopener nofollow">Automobile</a> publishing family.</p>

需要验证的文字是“特斯拉是汽车出版家族的一部分”。问题是,断言在全文断言时失败,但在断言“汽车”或“出版系列”或“汽车出版系列”时它确实通过了。对于 href 标记之前的文本,断言永远不会通过。

这是browser.assert.containsText('p.subfooter__text', 'The Tesla is part of the Automobile publishing family');我确保所有空格都得到照顾的代码部分。任何帮助是极大的赞赏。

0 投票
0 回答
43 浏览

javascript - 如何在守夜人中使用 CURL 发送发布请求?

我有一个用例要求,在 Nightwatch 中运行任何测试之前,我必须使用 curl 命令发送发布请求。示例:“curl -X POST https://example.com/”

我知道 nightwatch 中有一个叫做 globals 的东西,可以使用“before”钩子,但不确定如何在 before 钩子中执行上面的 curl 命令。手动方式是先调用终端并输入命令然后运行测试。任何人都可以请帮助并解释如何实现这一目标。

0 投票
1 回答
28 浏览

automated-tests - 如何在守夜人中从其他测试文件运行文件的所有测试用例

我正在尝试从另一个测试文件运行一个包含多个测试用例的测试文件。假设我有 admin-registration.js 测试文件,其中包含多个测试用例。我必须从另一个名为 main.js 的测试文件中运行 admin-registration.js 的所有测试用例。

我试图以这种方式做到这一点,但无法做到:

main.js

虽然我可以通过用点(。)符号指定名称来运行一个 testFiles 测试用例。但是我必须运行 testFiles 的所有测试用例。

0 投票
0 回答
44 浏览

nightwatch.js - nightwatchjs saveScreenshot 给出 TypeError:“data”参数必须是字符串类型或 Buffer、TypedArray 或 DataView 的实例

我正在使用 Nightwatch js 开发自动化原型,当我尝试保存屏幕截图时,出现以下错误

运行 .getScreenshot() 协议操作时出错:处理命令时发生未知的服务器端错误。– 处理时发生未知的服务器端错误...


TEST FAILURE: 执行过程中有 1 个错误;0 次测试失败,0 次通过(10.032 秒)

TypeError:“data”参数必须是字符串类型或 Buffer、TypedArray 或 DataView 的实例。在 FSReqCallback.oncomplete (fs.js:180:23) 处的 Object.writeFile (fs.js:1487:5) 处接收到 Object 的实例

失败:1 个错误,1 个通过(9.662 秒)

nightwatch.config.js 的相关数据:

测试文件数据:

守夜人版本:“1.5.1”

请注意,由于办公室政策无法在此处粘贴完整的测试用例数据。

在此处输入图像描述

0 投票
1 回答
36 浏览

javascript - 如何在 Nightwatch 测试的自定义命令中添加嵌套函数 javascript - forEach - 循环遍历元素

嗨,我是 javascript 和 Nightwatch 的新手,我是一名手动测试人员,大约 6 个月前开始进行自动化测试。我正在编写测试用例来检查产品的详细信息,并带有可折叠的菜单。按 + 按钮将打开并显示一个元素列表,当使用相同按钮关闭时,它会关闭列表,并显示一个计数器,其中包含列表中的项目数。

我有一个正确执行此过程的函数,但我已将其写在测试中。我想在拥有与该页面相关的所有元素和功能的页面中使用它。我想从测试中调用该函数。我已经能够做到这一点,但对于嵌套函数的情况却不行,因为我不知道如何编写它。

这些是我的页面:

这是我的测试:

这工作正常。

下面是我尝试过但不起作用的内容:

页:

productFunctionalityListPage.js

从页面测试调用函数:

运行上述测试后的结果:

谁能帮我在 productFuntionalityListPage.js 中将这些函数添加为自定义命令并从测试本身调用这些函数?不知道出了什么问题,因为我缺乏 javascript 和守夜知识。

0 投票
0 回答
28 浏览

keypress - .keys() 在守夜人中行为不端(即不工作)

所以目前我有一个登录到 gmail 的测试(可怕的想法,但需要)并在 gmail 收件箱中搜索特定标题。我们一直在使用 gmail 键盘快捷键来执行此操作。这是适用于 v0.9.21 nightwatch 的方法(当前在页面对象中) -

我最近创建了一个分支,然后升级到 v1.7.8 nightwatch,它完全失败了,我微弱的大脑无法理解错误,这是 -

并且根本无法让它工作。我是否缺少让“browser.keys()”工作的依赖项?

我也看到了“browser.keys(browser.Keys.ENTER)”的想法,我收到了同样的错误,似乎没有提供其他键盘操作,如https://www.w3.org/TR/webdriver/ #keyboard-actions

0 投票
0 回答
35 浏览

selenium - 夜班 - Saucelabs 问题

问题:在 saucelabs 中运行测试用例时,“安全验证失败。请启用 cookie 并刷新错误”。

调查结果

  • 测试用例在本地运行良好,没有任何错误(dev 和 pp)。
  • 在 saucelabs 中为 dev 和 pp 获取此错误。
  • 如果我们运行脚本 10 次。可能2次,登录成功

尝试的步骤:

  • 升级了守夜人(1.7.8)和调味连接发射器(1.3.2)。
  • 尝试在代码中提供额外的等待时间。
  • 修改过的守夜人文件
  • 尝试使用chrome浏览器
  • 与 Saucelabs 和 IDAM 团队建立联系

在此处输入图像描述

0 投票
1 回答
29 浏览

javascript - 如何在 Nightwatch 中配置远程 webdriver?

我开始使用 Nightwatch 并尝试使用 Selenoid 远程启动浏览器。

但看起来官方文档中没有远程 Webdriver 配置的示例。例如,在 Java 中,我正在创建一个 RemoteWebdriver 对象,将集线器 url 传递给它,例如:

但是当我从文档(https://nightwatchjs.org/gettingstarted/configuration/#webdriver-settings)设置建议的参数时:

我收到错误:

那么任何人都可以提供一个在 Nightwatch conf.js 中为 Selenoid 或 Selenium Grid 配置的远程 webdriver 的示例吗?

0 投票
0 回答
13 浏览

node.js - Nightwatch 未按预期从端点返回数据

我正在使用 nightwatch 自动测试网络功能。我有一个测试,我试图从本地测试环境外部的特定休息端点返回数据。当我从正在运行的 nightwatch 测试中执行此搜索时,它返回空结果。当我从网站执行相同的搜索时,它会返回我期望的数据。基于守夜人的呼叫和基于网站的呼叫都是从同一虚拟机 (VM) 执行的。

我以为我已经正确配置了 nightwatch.json。例如,以下 nightwatch 属性(除了 nightwatch 所需的奇数 selenium_port 外)与我用于在网站本身上运行的网站 url 和登录信息相匹配:

值得注意的是,登录请求(使用上述“全局”凭据)按预期工作。登录服务端点与搜索端点 VM 位于不同的 VM 上(两者都与我的本地网站 VM 不同)。

我不知道如何从守夜人的背景下诊断这个问题。使用“--verbose”运行测试不会返回其他有用信息。此外,selenium-server 日志也​​没有向我显示任何有用的信息。例如,这是实际的测试:

,如您所见,我在失败(以及不正常工作)调用之前和之后执行控制台消息。控制台输出上没有显示它们之间的任何内容。

对于诊断和解决我的问题的任何帮助,我将不胜感激。可能(可能)基于 Nightwatch 的搜索没有正确到达端点,但我不知道如何判断。感谢您的任何想法。