问题标签 [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 - 我的噩梦测试没有进入我的评估声明
练习使用 mocha chai 和 nightmare 运行测试。在我进入评估块之前,一切似乎都有效。
我已经输入了控制台日志,但它从未进入评估。我尝试将几个选择器传递给我的 wait() 函数,但它似乎没有效果。我收到的唯一错误是我的超时已超出。但不管我设置多久
javascript - NightmareJS 等待(选择器)不适用于基于 dojo 的网页
我正在尝试抓取使用Dojo Webkit和NightmareJS制作的网页。我遇到的问题是,在尝试单击按钮以浏览页面时,我需要确保在尝试单击按钮之前已加载按钮本身,否则会出现错误,例如:“无法通过选择器找到元素:选择器”,这是意料之中的。
添加等待(毫秒)有效,但在服务器速度较慢或要显示的内容较多的情况下,加载可能会超出等待时间,这显然是我想要避免的。然后我尝试使用 wait(selector) 方法,结果是它在那个时候停止了。在这一切过程中,Electron 浏览器是打开的,页面已经完全加载成功,包括带有选择器的按钮,我可以点击它并手动完成所有操作。
这是我正在尝试做的一个例子:
第一个按钮被点击并加载页面,但随后它挂在那里,第二个点击功能永远不会发生。
编辑:在对Dojo Webkit进行一些研究之后,我发现它有一个特殊的加载器,我认为它会扰乱网页的加载方式,但因为我不确定等待(选择器)如何检查页面以确定是否元素已加载到页面中,我不能确定 dojo 加载程序是根本原因,即使这样,我仍然希望有某种解决方法。
node.js - 使用 NightmareJs 从远程 url 下载视频流
我正在尝试构建一个刮板来下载视频流并将它们保存在使用 NightMareJs 的私有云实例中(http://www.nightmarejs.org/)
我已经看过文档,它显示了如何下载这样的简单文件 -
-- 基于此处的 SO 帖子->使用 Nightmare 下载文件
但我想使用 NodeJs 异步流 api 下载视频流。有没有办法使用 NodeJs 内置流 api 从远程 url 打开一个流并将其通过管道传输到本地/其他远程可写流
javascript - 使用噩梦 JS 延迟加载滚动
我是 NightmareJS 的新手,写了一个脚本来抓取一个网站。这就像那样工作。我登录到我的个人资料,等待网站加载,然后转到我喜欢的个人资料,然后我想向下滚动到网站末尾。目前我使用这种丑陋的工作,想知道是否有一种方法可以向下滚动到页面底部以获取所有结果,然后进行下一步。
javascript - Nightmare.js - addEventListener 点击函数不会执行
我想弄清楚如何让脚本点击链接并转到某个页面,然后执行一些操作。这是我坚持的例子,那是行不通的。
如您所见,它甚至不会转到下一页。
但是如果我像这样定义点击,它将转到下一页,但我也需要它在另一个页面上执行一些功能:
所以它让我感到困惑,不知道为什么它不起作用。
javascript - 如何将 NightmareJS 中的数据写入文件
我是 JavaScript、node.js 和 NightmareJS 的新手。
我在下面编写了一个简单的脚本来从网页中提取一些文本,我想将它保存到一个文件中。
我不断收到如下所示的错误:
javascript - NightmareJS 评估函数在 setInterval 上挂起
我一直试图让这个代码在 nightmarejs 上工作
为什么这段代码永远不会退出?
更新
如果我像这样使用 .end() 方法:
然后程序存在而不让评估函数完成
javascript - NightmareJS 的异步问题
我正在尝试使用 nightmarejs 构建一个脚本,该脚本可以一遍又一遍地单击一个按钮,就像评论部分底部的那个 youtube 按钮一样,每次按下它时都会加载较旧的评论(例如:youtube.com/ watch?v=pZISJqJbQuU&list=RDpZISJqJbQuU#t=3) 并在没有更多按钮可点击时停止。
我试过调用评估,只是为了首先调用 end() 方法并取消进程。我尝试使用 setTimeout 、 setInterval 和 then() 将循环转换为递归。每次评估()都会完成它的工作,但不会退出(只是挂起)或在完成它的工作之前退出,因为 end() 的竞争条件。
那里有经验丰富的 nightmarejs 用户吗?
删除 .end() 方法并挂起,再次放回 .end() 并跳过该过程 - 提前退出。我能做些什么 ?
javascript - 多线程中的电子进程在错误后不会关闭
情况:我想创建一个多线程脚本,在其中使用 CSV 加载 IP 列表 + 帐户信息。我加载数据并调用一个函数,在该函数中我打开电子并结合 Vo 运行我的噩梦脚本。在脚本中,我访问一个站点,遍历链接列表并检查是否有人住在澳大利亚。当我遇到错误(例如超时)时,浏览器将停止工作。错误示例 ->
这是我的代码
期望的结果:我希望每次遇到某种错误时我的线程正在关闭。
javascript - 如何将回调传递给我传递给“vo”库的生成器?
我试图了解回调是如何工作的,所以我创建了一个函数并传递了第二个名为 'callback' 的参数,我在函数末尾使用 'callback(arr)' 调用它。但是我收到一条错误消息:“回调不是函数”?你能告诉我我做错了什么吗?
更新
vo 是一个 nodejs 库,它接受一个生成器函数* () 并运行它的所有 yield 。它基本上是一种使用较少回调来处理异步代码的方法(是的,我知道我也使用了回调,但这几乎是一种选择)。做同样事情的更流行的库是 co。vo 链接:https ://github.com/matthewmueller/vo