问题标签 [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 回答
334 浏览

node.js - NodeJS 在渲染之前加载网站并从页面中删除元素

我最近搞砸了 NodeJs,它可以加载任何网站并保存屏幕截图。更具体地说,我使用 PhantomJS 加载网站并保存屏幕截图。我也使用过 CasperJS 和 ZombieJS,但是这些工具都不能真正让你在加载之前弄乱网站的资源。甚至可能吗?

需要明确的是,我想加载任何网站,比如说 stackoverflow.com 并计算加载时间并保存屏幕截图。这很容易,但是在第二次运行时,我想加载同一个网站并删除 jquery 资源,然后计算它的加载时间。

看起来 phantomjs 和 casperjs 有 onResourceRequested 或 onResourceReceived 之类的回调,但没有中止请求的方法。是否可以?我不想通过一些执行此操作的 php 脚本来代理请求,但这是替代方法。

0 投票
1 回答
542 浏览

google-closure-compiler - 如何使用 Google Closure 优化 CasperJS 项目?

我正在尝试优化 CasperJS 测试 run.js 代码(https://github.com/n1k0/casperjs/blob/master/tests/run.js),以便我可以了解如何进一步使用它来优化进一步我写的测试。这是我尝试使用编译器的 ADVANCED_OPTIMIZATIONS 标志优化的 CasperJS 项目的示例 run.js。(https://github.com/n1k0/casperjs/blob/master/tests/run.js) 但优化后的代码如下:

显然,编译器告诉这是失败的(例如:JSC_INEXISTENT_PROPERTY: Property casperLoaded never defined on phantom at line 2 character 5 if (!phantom.casperLoaded))

您能否指导我如何使用 Closure 编译器来优化项目中的所有 JS 文件及其依赖项,从而避免这些错误并继续进行。

我浏览了 Closure 的文档,但我无法弄清楚这种情况下所需的方法。

仅供参考:我使用的是 Closure compiler.jar

0 投票
2 回答
7016 浏览

phantomjs - Casperjs 检查一个 javascript 对象

如何检查 casperjs 脚本中的对象?

我试过console.log(arguments)了,但它只打印 [object Arguments] 或 [object Object]。

我希望得到类似的东西:{'firstparam':'value'...}

就像在 Javascript 控制台或 Node.js 中一样...

也许这是一个 Phantomjs 的问题,我不确定......

0 投票
2 回答
329 浏览

javascript - Extjs 点击事件,双火

我在玩 Casperjs 和 ExtJS

这是我的游乐场:http: //jsfiddle.net/charlesbourasseau/fEDCu/

这是我的 test.coffee: casper = require('casper').create logLevel: 'debug' verbose: true

这是输出:

有人知道我为什么得到 2[info] [remote] Click!吗?

0 投票
2 回答
5565 浏览

javascript - 带有 PhantomJs 和 CasperJs 的 injectJs

我正在尝试使用 CasperJS 来抓取一个具有动态内容的网站,但到目前为止都失败了。该网站使用几个 js 库(例如 Prototype)来使用自动完成来创建内容。因此,我试图插入一些值并触发事件来启动内容创建。插入和触发事件可以正常工作,但不会创建任何内容。

我是 CasperJS 的新手,发现它与库的相对路径存在问题。我怀疑我的问题是由于在我的页面环境中没有正确加载库引起的。因此,我尝试injectJs像这样使用注入它们

// ... 创建 casper 并做一些其他的事情

casper.then(函数(){

不幸的是,这两个函数都返回 false。脚本的路径是正确的,还有哪里可能是这个问题的根源?

非常感谢您的帮助。

0 投票
2 回答
2088 浏览

javascript - 用 casperjs 伪造 xmlhttprequests

我正在用 casperjs 编写端到端测试,并想伪造 ajax 服务器响应

我想出了一个想法,即包含一个模拟 xmlhttprequest 对象并始终返回我预期结果的简单脚本,如下所示

然后我打电话给setup_ajax我的 casper 测试

但看似未来的 ajax 请求仍然避免我的 xmlhttprequest 实现。

我试过运行 setup_ajax,使用 $.ready() 并从 casper 调用它,但这些都不起作用

更有趣的是,检查对象的存在奇怪地失败了。

但是 sinon 是正确包含的,至少当我在 setup_ajax 函数之外对其进行一些调用时,casper 没有导致任何错误,但是当我故意排除 sinon 时会导致错误。

您对在 casperjs 下模拟 xmlhttprequests 有什么想法吗?

0 投票
2 回答
11651 浏览

javascript - 如何使用 XPath 表达式在 CasperJS 中检索元素的属性

我在两行之间有一个网页:

我需要使用 XPath 提取“href”属性。在 CasperJS 的 API 中写了关于此的信息:clientutils.getElementByXPath

这是我的代码:

但它失败了。它返回这个:

0 投票
1 回答
2890 浏览

forms - CasperJS 中的填充方法

我想填写表格并提交。

检查我的脚本的一部分:

我得到了这个错误:

我不明白为什么我无法填写表格,因为断言结果是好的。

0 投票
1 回答
1432 浏览

unit-testing - casperjs:我们可以组织像 phpunit 这样的测试套件,例如“allTests”

我想组织我的测试套件,如 phpunit

添加在同一项目中其他地方找到的所有测试的脚本

0 投票
4 回答
15025 浏览

phantomjs - 抓取 CasperJS 或 PhantomJS 中的资源内容

我看到 CasperJS 有一个“下载”功能和一个“收到资源”回调,但我没有在回调中看到资源的内容,我不想将资源下载到文件系统。

我想获取资源的内容,以便我可以在我的脚本中使用它。CasperJS 或 PhantomJS 有可能吗?