问题标签 [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 截图回调
我正在使用这个框架来制作几个 url 的屏幕截图。截屏的过程是异步的,并且该方法没有提供执行回调的方法,我想在这个脚本上每次截屏时执行一个回调:
有什么想法我该怎么做?
node.js - 为什么在使用 Nightmare.js 或 phantom.js 抓取网站时显示 phantom std out 错误
我正在尝试使用 phantom.js 编写一个网络蜘蛛。但是我收到了很多错误消息,我不知道为什么。我的代码如下所示:
使用 Nightmare.js:
/li>使用 phantom.js:
/li>
错误信息是一样的:
我可以在最后一行得到结果,但是上面显示了很多错误,这是什么原因?
javascript - 为什么这个修补的异步输入在 Nightmarejs 中不起作用?
今晚我在试验 nightmarejs,我想在运行时有一个需要用户输入的步骤。有没有办法让 nightmarejs 允许这样的事情?我修改了 lib 附带的 type() 方法,并且能够停止执行以输入一些文本。脚本甚至完成了,但我没有看到我输入的输入,显示在它应该进入的文本框中。我确定 dom 选择器是正确的,因为当我使用相同的选择器和内置的 type() 方法时,静态文本就在那里。在下面的代码中,prompt(msg) 是来自sync-prompt 的方法这是我写的方法,但它不会更新页面上的元素:
我究竟做错了什么?
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
选项。
javascript - Nightmarejs在同一个测试中的多个页面
我正在尝试从 Drupal 站点上的两个网页中提取标题标签文本。我想使用 Nightmarejs。
到目前为止,这是我的代码:
当我运行它时,使用:node app.js我能够成功登录到第一页。不幸的是,当我尝试打开第二页时,我看到第二页调用 ( http://example.com/admin ) 拒绝访问。会话没有被带到第二个“goto”命令中。
我该怎么做才能使用同一个 nightmarejs 会话打开许多页面?
javascript - 使用 Nightmare 下载文件
我正在使用 Nightmare 为今天的报纸创建一个自动下载器。我设法登录并转到指定的页面。但是我不知道如何使用 Nightmare 下载文件。
我试图通过单击下载按钮来下载文件。但是,这似乎不起作用。
javascript - 如何解决噩梦 .click() 问题无法传播?
我已经将我遇到的问题减少到这个最小的公共站点示例。单击“显示全部”按钮会触发更多网站在每个浏览器中可见,但不是在噩梦中:
我对为什么这不起作用一无所知,我什至尝试用 触发点击jQuery('...').trigger('click')
,这在 Chrome 中有效,但在噩梦中无效.evaluate(...)
。这是运行上述示例的调试输出,没有任何异常:
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 中工作。
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?
javascript - 使用截图的函数的噩梦类型结果
嘿,我正在尝试用噩梦截取一个元素的屏幕截图,而不是我想用一个函数从这个屏幕截图中提取文本,并在nightmare.type()
. 问题是当我使用nightmare.run()
屏幕截图不存在时出现错误。我怎样才能解决这个问题?这是我的代码:
当我删除该行时:
一切正常,我得到了一个截图。