问题标签 [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.
jenkins - 守夜人全局变量无法进入詹金斯
为什么 Nightwatch 全局变量无法在 Jenkins 上运行?我在下面添加了nightwatch.js
"globals_path": "global.js"
像这样的测试
这是我的globlas.js
当我在本地运行它时它运行良好但它无法在 Jenkins 上获取全局变量 Jenkins 上的控制台
我本地的控制台
javascript - SyntaxError:在 Jenkins 中运行 Nightwatch 测试的意外标识符
附件是我在尝试运行运行守夜脚本的詹金斯作业时遇到的错误。节点模块中的功能似乎存在问题。
期望的行为是 jenkins 中的作业成功运行。问题不在于我编写的代码。这在本地有效。这是节点和詹金斯之间的问题。
aws/workspace/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS/lib/node_modules/nightwatch/lib/utils/periodic-promise.js:39
这是节点模块代码...
e2e-testing - waitForElementVisible 不搜索输入元素吗?
我正在使用 nightwatch.js 执行端到端测试,并且必须使用迂回方法才能使waitForElementVisible
命令按预期工作。例如,我的代码如下:
为了进一步澄清,我正在测试单选按钮是否可见。单选按钮的 DOM 元素如下:
selenium-chromedriver - chrome 驱动程序不会处理除 localhost 之外的 http URL
我正在使用 nightwatch.js、selenoid 和 chrome 驱动程序。我希望浏览器转到任何 url,这不是本地的,例如browser.url('http://google.com')
。但是 chrome 驱动程序不会执行此请求,但是如果我使用 https,一切正常。我试图添加标志,但它对我不起作用。
nightwatch.js - 有没有办法使用守夜人检查文本上的省略号?
有没有办法检查文本中的省略号或使用 nightwatch 截断的文本。我尝试使用browser.assert.ok(ref.offsetWidth < ref.scrollWidth)
,但似乎 Nightwatch 没有属性 offsetWidth 或 scrollWidth。有没有人遇到过这个?
cucumber - Nightwatch Cucumber 没有找到我的步骤定义
当前行为
无法识别步骤定义......无论我尝试什么,当我运行 nightwatch 时,我的功能和步骤都会返回为未定义。
预期/期望的行为
我的 step_definitions 文件夹中的代码被执行。
环境:
- nightwatch-黄瓜版本:9.1.3
- 守夜人版本:0.9.21
- 黄瓜版本:6.0.5
- Selenium_server 版本:3.141.59
- Phantomjs-预建版本:2.1.16
- Node.js 版本:10.17.0
包.json
nightwatch.conf.js
特征/about.feature
step_definitions/about.js
运行守夜人的输出
docker - 在 Docker 容器中运行不带 Selenium 服务器的 Nightwatch
我读到:
从 Nightwatch 1.0 开始,不再需要使用 Selenium Standalone Server,也不建议针对单个浏览器进行测试...
但我找不到任何有关直接与 WebDriver 交互的文档,尤其是在 Docker 容器中运行 Nightwatch+Chromedriver。
有什么具体的帮助吗?
nightwatch.js - 在每个测试的基础上设置默认超时
我正在寻找一种方法来在每个测试的基础上设置默认超时。
我正在写一些在守夜人中的端到端测试。其中一项测试需要多次点击 API 来设置初始测试条件。为了运行测试,有必要填充一些用户数据。这发生在 before() 方法中。
问题是, before() 在达到默认超时间隔时会超时。我已经阅读了设置全局默认超时的文档,但我不想到处增加它。我怎样才能在每次测试的基础上做到这一点?
异步之前/之后
https://nightwatchjs.org/guide/#asynchronous-before-each-and-after-each-
设置全局 asyncHookTimeout
https://github.com/nightwatchjs/nightwatch/blob/master/examples/globalsModule。 js#L20
测试代码如下:
javascript - Nightwatch - 设置和获取全局变量
基本上我需要做的是每次我在函数前运行测试时从 csv 文件中获取配置文件并将其作为数组加载到全局变量中。
假设 mynightwatch.conf.js 包含以下示例全局变量myGlobalArr
在 globals.js 中,我使用 readFileSync 读取文件并将其文本作为数组传递给变量
如何将存储在文件中的数组传递给myGlobalArr ,然后从页面对象内部调用它以使用它?
谢谢
javascript - Night watch pageobject 元素选择器不适用于 @ 表示法
当使用 @ 表示法从测试函数传递到页面对象时,选择器不起作用。
这是我的主页对象。
实用程序.js
测试js文件。
所以基本上 setDropdown(homePage.elements.dropdownSelector.selector, homePage.elements.dropdownAuthSelector.selector)工作正常,但是当我使用@ notation 时它不起作用 .setDropdown('@dropdownSelector', '@dropdownAuthSelector')并在下面抛出错误
错误 运行 .locateMultipleElements() 协议操作时出错:无效选择器:指定了无效或非法的选择器
运行 .locateMultipleElements() 协议操作时出错:无效的选择器:指定了无效或非法的选择器