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

python-3.x - 命令在终端上运行时在 python 子进程中正常工作,但在 crontab 中执行时失败

我正在尝试每天从 crontab 启动守夜测试。当我在 macOS 终端上启动我的 python 脚本时一切正常,但是一旦我通过调用我的 python script 启动 cron 作业。发生以下错误:

我试图设置下面是我尝试从 python 子进程运行的命令:

我需要运行的实际命令是:

我想这是因为子进程找不到“节点”我在终端上运行“哪个节点”它可以在这里找到:

那么我在这里缺少什么?

0 投票
1 回答
25 浏览

javascript - Nightwatch 使用 chromedriver 版本 83 在脚本上返回“未定义”全局值

大家好,这是我第一次在 StackOverflow 上发帖。

我的 chromedriver 版本 77 的守夜脚本之前一直在工作,直到我更新到版本 83,当我在测试脚本上使用它时,它会undefined从全局变量中抛出一个字符串值。nightwatch.conf.js

这是我nightwatch.conf.js自定义的环境设置示例配置;

使用的代码: var test_site = browser.demo_site

将全局变量输入demo_site到网站的文本框中。我用过的browser.setValue(`<sample_xpath_here>`,`${test_site}`)

预期结果: 在文本框内fake.site.com

实际结果: 在文本框内undefined

0 投票
1 回答
614 浏览

javascript - 使用 Nightwatch 编写异步自定义命令

在过去的 3 天里,我一直在尝试获取一个函数,但没有成功,我正在使用该函数来获取适合某个选择器的元素列表的 CSS 选择器路径,以在 Nightwatch JS 中作为自定义命令工作。

你给命令的内容:

输出应该是什么:

等等。

我尝试了很多不同的方法来实现它,但没有成功,我对 Async/Await 还很陌生,所以我运气不好,也无法将 Nightwatch.js 指南中的示例联系起来(https ://nightwatchjs.org/guide/extending-nightwatch/#writing-custom-commands)到我的问题。

我使用如何为 DOM 元素生成唯一 css 选择器中的代码段编写了以下内容?

从那里,我希望在调用此自定义命令的测试代码中能够使用await它。这个命令必须在多个元素上调用,所以使它成为一个回调函数,虽然可以工作,但也会把我的代码放在一个永恒的回调堆栈中,这会让它看起来非常难看,非常快。

理想情况下,我希望代码变成这样:

不幸的是,我总是得到undefined作为我努力的成果。:/

几天到将近一周,我一直在为此绞尽脑汁,并尝试了 Promise 和 Event 实现,但这一点超出了我的范围,所以我求助于 SO。任何帮助将不胜感激!

0 投票
0 回答
36 浏览

javascript - 祖先.shift 不是一个函数

我正在尝试让自动化测试重新启动并运行,并且在运行测试时遇到以下问题。

该函数的目标是,如果选择器来自页面的一部分,对象选择器将是一个对象数组,从最外层的祖先(部分)开始,并以元素结束,依次加入它们的选择器。

错误信息: Error while running "getElements" command: ancestors.shift is not a function

功能:

下面调用 getSelector 函数的代码:

0 投票
1 回答
366 浏览

javascript - Nightwatch 1.3.5,能够接受警报,但无法从中获取文本。Salesforce UI 自动化

我正在使用 Nightwatch.js 开发 Salesforce UI 自动化

我在从警报中获取文本时遇到问题。我能够触发警报并接受它,但不能从中获取文本。

场景: 1- 用户点击获取交易 2- 几秒钟后,用户收到消息“银行账户交易详情已成功提取”。

警报示例:

警报

根据官方文档,应该可以使用 getAlertText() 获取警报

在代码中,做 browser.acceptAlert() 没有问题,但如果在接受之前我做了这样的事情:

然后记录该文本,我得到这个:

它还在继续,但是太长了,无法全部分享。我收到的不是文本“银行账户交易详情已成功提取”。这个过程在香草硒中非常简单,所以我不确定我在这里遗漏了其他东西。

我确实尝试在获取文本之前切换到警报,但出现以下错误:

我用这个:browser.switchTo().alert()

最后,如果我删除接受警报,那么测试将给出以下错误,因为它试图在结束时截取屏幕截图,但被我试图验证的警报阻止。这让我觉得它能够以某种方式看到文本:

有问题的代码:(请注意,由于测试,有部分被注释掉,在开始工作时接受警报,因此被注释掉)

我在代码中添加了一些注释供参考。

在此先感谢您的帮助。

0 投票
1 回答
165 浏览

selenium - 守夜人硒。如何按下:CTRL + SHIFT + j

我已经尝试了我想出的每一种组合,但都没有成功。

等等

知道如何使它工作吗?谢谢。

0 投票
0 回答
194 浏览

javascript - 如何在 selenium Safari Capabilities 中设置默认下载目录?

我一直在寻找与设置 Safari 功能相关的文档。浏览器不会将文件下载到给定路径。

有没有人有什么建议?

提前致谢!

0 投票
1 回答
169 浏览

selenium - 剑道 DatePicker 上的硒(守夜人)setValue 不起作用

我正在尝试mm/dd/yyyy使用 nightwatch 输入格式化为 Kendo React DatePicker 控件的日期字符串setValue。似乎无论我采用什么方法来选择控件,它总是首先将光标设置在年份部分,然后键入然后只填写这四个字符。(例如,如果我提供“05/06/2016”,我在输入中看到的所有内容都是“mm/dd/0016”,并且月份和日期永远不会更新。)

如果我在月份字段上单击鼠标,则该控件在正常情况下似乎可以正常工作,光标将显示在那里,如果我键入 2 个字符,再输入 2/个字符,/然后最后 4 个字符,控件工作正常。硒选择控件和 DatePickers 默认行为似乎只是一个问题。

由于可访问性处理允许,我尝试使用browser.Key.LEFT_ARROW它来查看是否可以先将光标向左移动两次。我还尝试先调用clearValue()输入,然后从头开始输入,但在这两种情况下都没有成功。

如果可以避免,我宁愿不使用日历控件选择日期。

这是我的代码目前的样子:

任何建议表示赞赏。

0 投票
1 回答
214 浏览

nightwatch.js - 如何在 Nightwatch.js 中断言 .containsText 不区分大小写?

我如何断言 . containsText不区分大小写Nightwatch.js?例如,我odin在谷歌上搜索“球体”。搜索结果有很多可能性,比如'Odin Sphere''odin sphere''ODIN SPHERE'等等,我只想用'odin sphere'来断言。这是我写的代码。

0 投票
1 回答
55 浏览

automation - 在 Nightwatch.js 中满足预期条件之前运行操作的最佳方式?

我正在自动化网站的一部分,当您单击按钮时该部分将启动工作。作业状态在页面的另一个字段中报告,但不会自动推送。最终用户需要单击页面内的刷新按钮才能查看最新状态。

像这样的东西

如果在不使用交互的情况下推送数据,则可以工作,但是因为我必须手动单击另一个按钮才能获得不起作用的最新状态。

是否有内置方法可以在 Nightwatch 中每隔 [interval here] 执行某些操作,直到 [condition true] 或 [timeout reached]?我不想使用硬暂停,因为这项工作可能需要更多或更少的时间,具体取决于服务器的感觉。