问题标签 [nightmare]
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.
node.js - NightmareJS 在测试之间保持会话
我正在将 NightmareJS 与 Mocha 一起使用。一切似乎都很好,但是我在分离测试时遇到了问题,因为我的会话不会通过不同的测试用例持续存在。
第一个测试通过了,但是第二个测试Should be able to edit
失败了,因为即使我使用了分区选项,我最终还是在同一个登录页面上。我该如何克服呢?
javascript - ES6 javascript 测试使用 Tape 和 Nightmare.js
我一直在尝试使用Tape assertions 和Nightmare.js来测试我的 ES6 代码来加载测试页面。我一直在尝试不同的 ES6 方法:async/await、yield、generators,我觉得我有点过头了。我也不确定何时何地不使用babel-tape。我可以通过以下测试,但是在我创建另一个评估块的那一刻,它就会出错。文档相当稀缺(或使用 Mocha)。这里的最佳做法是什么?
附言。我正在使用babel-tape-runner来运行测试。
javascript - 使用 Nightmare 从渲染器进程向节点进程发送消息
如何在 Nightmare 中将消息从渲染器进程(网页)发送到主进程(节点)?Electron 中有ipc,而 Nightmare 是建立在 Electron 之上的,所以我想这是可能的,但我不知道怎么做。
像这样的东西:
index.js
javascript - 使用 nightmarejs 单击图像
我在这个问题上挣扎了几天。我正在使用 nightmarejs 单击 Ebay 产品列表页面上的图像。单击时,图像的全尺寸版本会出现在灯箱中。
Nightmarejs 就是不会点击这张图片!我可以点击其他链接,但图像永远不会被点击,所以没有灯箱弹出。这是我要单击的图像:
这是我的代码:
我已经尝试了几乎所有可能的选择器。我也没有从噩梦中收到任何异常(如果它找不到它抛出的选择器)。
我真的被这个难住了。
automated-tests - 在服务器上使用 Mocha 运行 NightmareJS(Bamboo 代理)
我一直在与这个问题作斗争一段时间,似乎无法找到解决方案。在服务器上使用 NightmareJS + mocha 运行测试时,它们会失败。我尝试运行:
但看不到任何日志/操作错误等。只是测试失败(超时)。
我只能在没有 NightmareJS 的情况下运行 Mocha 测试,而且它们运行良好。此外,在我的本地机器上运行 nighmareJS 测试时,它们可以正常工作。
NightmareJS 安装在服务器上,package.json 内容:
这是测试的代码:
我该如何调试呢?当我在服务器上运行时,我不能使用 show: true 选项。
javascript - 噩梦 JS 不工作
我知道问题的标题看起来很模糊!但仅此而已。
我在生产服务器上安装了nodejs,它的phantomjs工作正常,然后我通过安装了nightmare npm install nightmare
,我可以在node_modules中看到它,我尝试了github上开发人员列出的示例:
什么也没发生,脚本没有输出任何东西,我将脚本简化为一个简单的 goto,对于我服务器上的一个页面,当我通过运行脚本时,该页面从未被调用node file.js
我有 CentOS 6.7,phantomjs 1.1 我还在使用最新版本的 phantomjs 的全新 CentOS 7 安装上对其进行了测试,同样的事情。
我是否缺少某种先决条件或其他东西?我如何调试问题,因为node script.js
没有给出任何输出
更新:显然问题是,电子,它被噩梦'而不是phantomjs'使用需要一个图形环境,这就是它无法在我的环境中运行的原因。
javascript - 噩梦条件等待()
我正在尝试使用 Nightmare 抓取网页,但希望等待#someelem
出现,前提是它确实存在。否则,我希望 Nightmare 继续前进。如何做到这一点.wait()
?
我不能用.wait(ms)
。Using.wait(selector)
意味着 Nightmare 会一直等待直到元素出现,但是如果页面永远不会有这个元素,Nightmare 会一直等待。
最后一个选项是使用.wait(fn)
. 我已经尝试过这样的事情
因此,等待并再次尝试(达到阈值),如果未找到该元素,则继续前进。setTimeout 周围的代码似乎是错误的,因为.wait
是在浏览器范围内完成的。
提前致谢!
node.js - 如何在评估中同步进行函数调用?
嗨,我正在使用 PhantomJS 和 nightmare 进行自动化,一旦我的 UI 自动化通过 nightmare 执行,我需要进行 DB 调用,我正在使用 nightmare 的评估功能来进行 DB 调用,我期望调用会进行同步但实际发生的是我的 DB 函数在 UI 自动化执行完成之前首先被触发,因为结果是传递了不正确的数据进行 DB 验证。以下是 ma 代码示例
node.js - 无法使用 phantomJS 获取 iframe 的元素
我正在寻找一种方法来控制文档中的元素。问题是,文档附加到 iFrame。
这是一个例子:
我在上面要做的是:
- 使用 Url 获取 iFrame。
- 使用它来控制 iFrame 中的每个元素。
javascript - 动态控件不在 phantomJs 浏览器中加载,而是在 IE、Firefox、Chrome 中加载
我正在尝试使用 phantomJS 自动化一个场景,在该场景中有一个动态网格。我们必须手动填充网格中的数据。在填充网格之前,应显示一个空行。该空行没有显示在 phantomJS 浏览器中,而该行正在加载到 IE、Mozilla Firefox 和 google chrome 中。下面是我正在使用的脚本,我尝试使用行中元素的所有 ID,并尝试等待它加载足够的时间。
PhantomJS 版本 - 2.1.1 Node JS 版本 -0.12.13-x64.msi python 版本 -3.5.1 Nightmare -1.8.2