问题标签 [casperjs]

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 回答
1328 浏览

casperjs - WaitFor、Ajax 和 Tester API

如果我想使用 tester API,并使用 say assertSelectorExists,我该如何 waitFor 选择器?我知道您可以使用 waitForSelector 的 onTimeout 回调并在其中手动创建一条消息,但这似乎违背了能够断言的目的......

0 投票
3 回答
2891 浏览

cygwin - 如何让 PhantomJS / CasperJS 在 Cygwin 上工作?

我无法让 PhantomJS 和 CasperJS 在 cygwin 环境中工作。我对cygwin很陌生。我能够为 Windows 下载这两个包并通过 Windows cmd 运行它们。

为了让他们使用 Cygwin,我尝试了以下方法:

我下载了 PhantomJS 和 CasperJS 的 tar/zip 文件,我将“bin”文件夹中的内容复制到 C:\cygwin\bin。但是当我在 cygwin 上输入 phantomjs 时,我得到:

/usr/bin/phantomjs: 无法执行二进制文件

然后,我尝试这样做:

pip install git+git://github.com/ariya/phantomjs

但等待一段时间后,我得到以下回复:

下载/解压缩 git+git://github.com/ariya/phantomjs 克隆 git://github.com/ariya/phantomjs 到 /tmp/pip-dCF1oZ-build 运行 setup.py egg_info 以从 git+git:/ /github.com/ariya/phantomjs Traceback(最近一次调用最后一次):文件“”,第 16 行,在 IOError:[Errno 2] 没有这样的文件或目录:'/tmp/pip-dCF1oZ-build/setup.py'命令 python setup.py egg_info 的完整输出: Traceback(最近一次调用最后一次):

文件“”,第 16 行,在

IOError:[Errno 2] 没有这样的文件或目录:'/tmp/pip-dCF1oZ-build/setup.py'

---------------------------------------- 命令 python setup.py egg_info 失败,错误代码1 in /tmp/pip-dCF1oZ-build 在/home/tkondapalli/.pip/pip.log 中存储完整的日志

有人对如何使它工作有任何建议吗?有人在 cygwin 环境中使用 PhantomJS/CasperJS 吗?


另外,我认为我正在下载并复制到 C:\cygwin\bin 目录中的 .exe 是适用于 linux 的,所以也许这不起作用?所以这意味着我需要从 cygwin 上的源代码编译...

所以,我开始遵循构建 phantomjs 的指示:http: //phantomjs.org/build.html

我们需要做的第一件事是为 devel 构建 OpenSSL,但我不知道如何为 cygwin 执行此操作!所以我暂时跳过了这一步,这可能是不对的。

我确实从 github 下载了源代码并尝试构建它。它失败并出现以下错误:

Makefile:217: 目标 `qtemporaryfile.o' 的配方失败 make: * [qtemporaryfile.o] 错误 1 ​​make: *等待未完成的作业.... make: *** 没有指定目标,也没有找到 makefile。停止。./build.sh:第 90 行:src/qt/bin/qmake:没有这样的文件或目录


早些时候我下载了 Linux 的可执行文件,所以它不起作用。这次我下载了windows的可执行文件并把它放在C:/cygwin/bin中,它工作了!

当cygwin是一个linux模拟器时,我不明白为什么我需要下载windows可执行文件。这让我很困惑,但至少它现在有效!

0 投票
1 回答
7267 浏览

javascript - CasperJs单击嵌套循环中的链接

我正在尝试使用 PhantomJS/CasperJS 来抓取网页。最近几天我一直在阅读文档,并在网上搜索,但我被困住了。

我正在抓取的页面显示了三个级别的链接——年、月和日。当您选择年、月和日时,#count div 中会显示一个计数。此外,月份实际上是更改 #imageLoad div 中的图像的输入(我不需要)。

我正在尝试遍历链接并记录每个年、月和日组合出现的计数。如您所见,月份是改变情况的输入。

我尝试了很多东西。我想做的主要事情是一个嵌套循环,它循环通过每组链接,在我去的时候点击它们。这是代码(我正在使用 jQuery):

我认为这将按顺序遍历每组链接,并且我会从年、月和日的每个变化中获取所有值。

但是,当我单击脚本中的月份输入时,脚本会中断并转到下一个 casper.then 语句。我有更好的方法吗?

我有一种感觉,我正在以错误的方式解决这个问题,但我尝试过的其他任何事情也没有任何成果。似乎一旦中断到下一个“然后”,就再也没有回到我的循环了。

我试过用 循环Casper.each,但我不知道手头会有多少元素。

提前致谢。

0 投票
1 回答
3588 浏览

javascript - casperjs:如何单击远程 div 然后更新它的类名?

作为学习CasperJS的一种方式,我试图在远程页面上的 div 上发起点击事件,然后在点击后更改 div 的类名。这个想法是找到第一个可点击的 div,点击它,然后将其标记为已点击,这样我就可以跳过它到其他可点击的 div。远程页面上 div 标记的标记如下所示:

我尝试了以下 casperjs 代码:

它似乎不起作用。首先,我认为我没有正确启动 div 上的鼠标单击事件。我错过了什么?其次,当我获取更新后的 html 时,我看不到 div 的类名有任何变化。我是否以错误的方式进行这一步?

0 投票
2 回答
1884 浏览

python - 可以用scrapy完成表单提交,做浏览器能做的一切吗

我有一项任务,我需要向网站提交表单,但他们不提供任何 API。我目前正在使用 webdriver 并且由于我的代码和浏览器之间的异步性质而面临许多问题。我正在寻找一个轻量级的可靠库/工具,我可以使用我可以完成用户使用浏览器执行的所有任务。

Casperjs 是可以完成我的工作的选项之一,但我更熟悉 python,并且与 casperjs 相比,scrapy 拥有更大的开发人员社区。

没有浏览器的导航实用程序,重量轻且防故障是相关问题之一。

0 投票
2 回答
6989 浏览

phantomjs - 调用远程 javascript 函数

通过使用 phantomjs 或 casperjs,是否可以执行在远程站点上定义的 javascript 函数?

我在文档中看到的只是在 phantomjs 和 casperjs 中调用内置函数,无论如何都可以使用 phantomjs 和/或 casperjs 来执行此操作吗?

0 投票
1 回答
1204 浏览

javascript - Phantom Js、CasperJs 外部脚本未正确评估

这里有趣的问题,我使用 injectJs 将外部文件(site.js)加载到我的 phantomJs/CasperJs 脚本中。它的加载很好,但函数没有评估并且作为字符串返回。

这是site.js:

这是我的 phantom.js 脚本:

我希望控制台打印出:'this is a name',但它会打印出:'function(){ this.getName = function(){ return 'this is a name'; }}'

我也试过 eval() 无济于事(eval?)。

谢谢你的帮助。

0 投票
1 回答
3032 浏览

phantomjs - 使用 CasperJS/PhantomJs 进行抓取

我想用 CasperJS 从一个受欢迎的网站上抓取一些数据。我已经使用代理池成功地抓取了一些数据。现在我担心 HTTP REQUEST 标头与我的 HTTP 请求一起出现。我知道有很多关于我和我的服务器的信息——所以是否存在一些删除或修改传出 HTTP 标头的方法。

0 投票
1 回答
207 浏览

python - python mechanize空白下载或如何在casperjs中进行

我正在从使用 ajax 加载 URL 并且不允许串行下载的站点下载研究项目的信息。我正在将 url 转储casperjs到我阅读并用于browser.retrieve(url,dump_filename)下载信息的文件中mechanize。我主要下载空白文件,但它们会定期填充内容。有没有办法修改标题,以便我始终可以获取数据。此外,casperjs欢迎下载替代方案。我试过casperjsdownload() 但它也保存了一个空白文件。我认为这与标题有关。文件下载始终在浏览器中工作。

0 投票
2 回答
318 浏览

jquery - 有没有像greasemonkey的casperjs那样模拟用户点击的库?

我将编写一个用户脚本来模拟用户点击。

我正在使用jquery.trigger,但我想知道是否有任何第三个库可以像 CasperJS 一样拯救我。

所以我可以使用类似的东西: