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

node.js - 我的噩梦测试没有进入我的评估声明

练习使用 mocha chai 和 nightmare 运行测试。在我进入评估块之前,一切似乎都有效。

我已经输入了控制台日志,但它从未进入评估。我尝试将几个选择器传递给我的 wait() 函数,但它似乎没有效果。我收到的唯一错误是我的超时已超出。但不管我设置多久

0 投票
1 回答
629 浏览

javascript - NightmareJS 等待(选择器)不适用于基于 dojo 的网页

我正在尝试抓取使用Dojo WebkitNightmareJS制作的网页。我遇到的问题是,在尝试单击按钮以浏览页面时,我需要确保在尝试单击按钮之前已加载按钮本身,否则会出现错误,例如:“无法通过选择器找到元素:选择器”,这是意料之中的。

添加等待(毫秒)有效,但在服务器速度较慢或要显示的内容较多的情况下,加载可能会超出等待时间,这显然是我想要避免的。然后我尝试使用 wait(selector) 方法,结果是它在那个时候停止了。在这一切过程中,Electron 浏览器是打开的,页面已经完全加载成功,包括带有选择器的按钮,我可以点击它并手动完成所有操作。

这是我正在尝试做的一个例子:

第一个按钮被点击并加载页面,但随后它挂在那里,第二个点击功能永远不会发生。

编辑:在对Dojo Webkit进行一些研究之后,我发现它有一个特殊的加载器,我认为它会扰乱网页的加载方式,但因为我不确定等待(选择器)如何检查页面以确定是否元素已加载到页面中,我不能确定 dojo 加载程序是根本原因,即使这样,我仍然希望有某种解决方法。

0 投票
1 回答
1202 浏览

node.js - 使用 NightmareJs 从远程 url 下载视频流

我正在尝试构建一个刮板来下载视频流并将它们保存在使用 NightMareJs 的私有云实例中(http://www.nightmarejs.org/)

我已经看过文档,它显示了如何下载这样的简单文件 -

-- 基于此处的 SO 帖子->使用 Nightmare 下载文件

但我想使用 NodeJs 异步流 api 下载视频流。有没有办法使用 NodeJs 内置流 api 从远程 url 打开一个流并将其通过管道传输到本地/其他远程可写流

0 投票
1 回答
1794 浏览

javascript - 使用噩梦 JS 延迟加载滚动

我是 NightmareJS 的新手,写了一个脚本来抓取一个网站。这就像那样工作。我登录到我的个人资料,等待网站加载,然后转到我喜欢的个人资料,然后我想向下滚动到网站末尾。目前我使用这种丑陋的工作,想知道是否有一种方法可以向下滚动到页面底部以获取所有结果,然后进行下一步。

0 投票
1 回答
471 浏览

javascript - Nightmare.js - addEventListener 点击函数不会执行

我想弄清楚如何让脚本点击链接并转到某个页面,然后执行一些操作。这是我坚持的例子,那是行不通的。

如您所见,它甚至不会转到下一页。

但是如果我像这样定义点击,它将转到下一页,但我也需要它在另一个页面上执行一些功能:

所以它让我感到困惑,不知道为什么它不起作用。

0 投票
1 回答
1841 浏览

javascript - 如何将 NightmareJS 中的数据写入文件

我是 JavaScript、node.js 和 NightmareJS 的新手。

我在下面编写了一个简单的脚本来从网页中提取一些文本,我想将它保存到一个文件中。

我不断收到如下所示的错误:

0 投票
0 回答
551 浏览

javascript - NightmareJS 评估函数在 setInterval 上挂起

我一直试图让这个代码在 nightmarejs 上工作

为什么这段代码永远不会退出?

更新

如果我像这样使用 .end() 方法:

然后程序存在而不让评估函数完成

0 投票
1 回答
535 浏览

javascript - NightmareJS 的异步问题

我正在尝试使用 nightmarejs 构建一个脚本,该脚本可以一遍又一遍地单击一个按钮,就像评论部分底部的那个 youtube 按钮一样,每次按下它时都会加载较旧的评论(例如:youtube.com/ watch?v=pZISJqJbQuU&list=RDpZISJqJbQuU#t=3) 并在没有更多按钮可点击时停止。

我试过调用评估,只是为了首先调用 end() 方法并取消进程。我尝试使用 setTimeout 、 setInterval 和 then() 将循环转换为递归。每次评估()都会完成它的工作,但不会退出(只是挂起)或在完成它的工作之前退出,因为 end() 的竞争条件。

那里有经验丰富的 nightmarejs 用户吗?

删除 .end() 方法并挂起,再次放回 .end() 并跳过该过程 - 提前退出。我能做些什么 ?

0 投票
1 回答
975 浏览

javascript - 多线程中的电子进程在错误后不会关闭

情况:我想创建一个多线程脚本,在其中使用 CSV 加载 IP 列表 + 帐户信息。我加载数据并调用一个函数,在该函数中我打开电子并结合 Vo 运行我的噩梦脚本。在脚本中,我访问一个站点,遍历链接列表并检查是否有人住在澳大利亚。当我遇到错误(例如超时)时,浏览器将停止工作。错误示例 ->

这是我的代码

期望的结果:我希望每次遇到某种错误时我的线程正在关闭。

0 投票
3 回答
760 浏览

javascript - 如何将回调传递给我传递给“vo”库的生成器?

我试图了解回调是如何工作的,所以我创建了一个函数并传递了第二个名为 'callback' 的参数,我在函数末尾使用 'callback(arr)' 调用它。但是我收到一条错误消息:“回调不是函数”?你能告诉我我做错了什么吗?

更新

vo 是一个 nodejs 库,它接受一个生成器函数* () 并运行它的所有 yield 。它基本上是一种使用较少回调来处理异步代码的方法(是的,我知道我也使用了回调,但这几乎是一种选择)。做同样事情的更流行的库是 co。vo 链接:https ://github.com/matthewmueller/vo