问题标签 [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.

0 投票
2 回答
5736 浏览

node.js - NightmareJS 截图回调

我正在使用这个框架来制作几个 url 的屏幕截图。截屏的过程是异步的,并且该方法没有提供执行回调的方法,我想在这个脚本上每次截屏时执行一个回调:

有什么想法我该怎么做?

0 投票
1 回答
1114 浏览

node.js - 为什么在使用 Nightmare.js 或 phantom.js 抓取网站时显示 phantom std out 错误

我正在尝试使用 phantom.js 编写一个网络蜘蛛。但是我收到了很多错误消息,我不知道为什么。我的代码如下所示:

  • 使用 Nightmare.js

    /li>
  • 使用 phantom.js

    /li>

错误信息是一样的:

我可以在最后一行得到结果,但是上面显示了很多错误,这是什么原因?

0 投票
1 回答
272 浏览

javascript - 为什么这个修补的异步输入在 Nightmarejs 中不起作用?

今晚我在试验 nightmarejs,我想在运行时有一个需要用户输入的步骤。有没有办法让 nightmarejs 允许这样的事情?我修改了 lib 附带的 type() 方法,并且能够停止执行以输入一些文本。脚本甚至完成了,但我没有看到我输入的输入,显示在它应该进入的文本框中。我确定 dom 选择器是正确的,因为当我使用相同的选择器和内置的 type() 方法时,静态文本就在那里。在下面的代码中,prompt(msg) 是来自sync-prompt 的方法这是我写的方法,但它不会更新页面上的元素:

我究竟做错了什么?

0 投票
2 回答
2873 浏览

web-crawler - 如何使用 nightmarejs(或 casperjs/phantomjs)跟踪自动表单提交和重定向

使用 nightmarejs,我想遵循几个重定向和自动表单提交,这是由页面脚本调用的。并想得到最后一页。

比如这样的页面内容http://myexample/

此页面的脚本元素提交表单。并发送 post 请求http://somewhere/。然后http://somewhere/返回 302 响应http://another/

为了得到最后一页(http://another/),我尝试了这样的 nightmarejs 代码:

我尝试了各种url方法evaluate,但我无法获得最后一页。

有没有办法支持这样的案例?也欢迎使用 casperjs 或 phantomjs 的答案。

更新

我已经尝试过 PhanomJS 并且能够跟踪重定向。但是还有另一个问题是连接因SSL Handshake failed错误而失败。我已经解决了这个添加--ssl-protocol=any选项。

0 投票
2 回答
3975 浏览

javascript - Nightmarejs在同一个测试中的多个页面

我正在尝试从 Drupal 站点上的两个网页中提取标题标签文本。我想使用 Nightmarejs。

到目前为止,这是我的代码:

当我运行它时,使用:node app.js我能够成功登录到第一页。不幸的是,当我尝试打开第二页时,我看到第二页调用 ( http://example.com/admin ) 拒绝访问。会话没有被带到第二个“goto”命令中。

我该怎么做才能使用同一个 nightmarejs 会话打开许多页面?

0 投票
4 回答
7815 浏览

javascript - 使用 Nightmare 下载文件

我正在使用 Nightmare 为今天的报纸创建一个自动下载器。我设法登录并转到指定的页面。但是我不知道如何使用 Nightmare 下载文件。

我试图通过单击下载按钮来下载文件。但是,这似乎不起作用。

0 投票
2 回答
1952 浏览

javascript - 如何解决噩梦 .click() 问题无法传播?

我已经将我遇到的问题减少到这个最小的公共站点示例。单击“显示全部”按钮会触发更多网站在每个浏览器中可见,但不是在噩梦中:

我对为什么这不起作用一无所知,我什至尝试用 触发点击jQuery('...').trigger('click'),这在 Chrome 中有效,但在噩梦中无效.evaluate(...)。这是运行上述示例的调试输出,没有任何异常:

0 投票
1 回答
1375 浏览

node.js - 噩梦 HTTPS 选项:ignoreSslErrors 和 sslProtocol 不适用于 phantomJS

[ phantomjs -v 1.9.7 ] 与 NightmareJS: https ://github.com/segmentio/nightmare

通过使用超时选项的一个示例,我可以看到最好的选项设置:

也试过

它不会打开 https 页面。

如果我直接使用 phantomjs 来访问同一页面,它可以正常工作:

页面标题是登录

*** testBot.js

这段代码非常混乱,但是当我将站点切换回 HTTP 而不是 HTTPS 时,它可以完美运行。

我知道 HTTPS 在调用“登录”功能时失败并且找不到输入框:

Nightmare 会为输入框返回错误并且页面的标题为空。它应该是:“登录”或“打印发票”,具体取决于“机器人”是否登录。

以下线程让我在“tlsv1”方面朝着正确的方向前进:PhantomJS 无法打开 HTTPS 站点,但我无法让它在 Nightmare 中工作。

0 投票
2 回答
2843 浏览

javascript - nightmare run function que in while loop (let the loop wait until que is finished)

I am trying to run nightmare in a while loop. My problem is that the while loop is not waiting for nightmare to finish. That's my example code:

Is it possible to let the loop wait until nightmare has finished it's function queue? What other options do I have?

0 投票
1 回答
400 浏览

javascript - 使用截图的函数的噩梦类型结果

嘿,我正在尝试用噩梦截取一个元素的屏幕截图,而不是我想用一个函数从这个屏幕截图中提取文本,并在nightmare.type(). 问题是当我使用nightmare.run()屏幕截图不存在时出现错误。我怎样才能解决这个问题?这是我的代码:

当我删除该行时:

一切正常,我得到了一个截图。