问题标签 [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.
node.js - NodeJS 在渲染之前加载网站并从页面中删除元素
我最近搞砸了 NodeJs,它可以加载任何网站并保存屏幕截图。更具体地说,我使用 PhantomJS 加载网站并保存屏幕截图。我也使用过 CasperJS 和 ZombieJS,但是这些工具都不能真正让你在加载之前弄乱网站的资源。甚至可能吗?
需要明确的是,我想加载任何网站,比如说 stackoverflow.com 并计算加载时间并保存屏幕截图。这很容易,但是在第二次运行时,我想加载同一个网站并删除 jquery 资源,然后计算它的加载时间。
看起来 phantomjs 和 casperjs 有 onResourceRequested 或 onResourceReceived 之类的回调,但没有中止请求的方法。是否可以?我不想通过一些执行此操作的 php 脚本来代理请求,但这是替代方法。
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
phantomjs - Casperjs 检查一个 javascript 对象
如何检查 casperjs 脚本中的对象?
我试过console.log(arguments)
了,但它只打印 [object Arguments] 或 [object Object]。
我希望得到类似的东西:{'firstparam':'value'...}
就像在 Javascript 控制台或 Node.js 中一样...
也许这是一个 Phantomjs 的问题,我不确定......
javascript - Extjs 点击事件,双火
我在玩 Casperjs 和 ExtJS
这是我的游乐场:http: //jsfiddle.net/charlesbourasseau/fEDCu/
这是我的 test.coffee: casper = require('casper').create logLevel: 'debug' verbose: true
这是输出:
有人知道我为什么得到 2[info] [remote] Click!
吗?
javascript - 带有 PhantomJs 和 CasperJs 的 injectJs
我正在尝试使用 CasperJS 来抓取一个具有动态内容的网站,但到目前为止都失败了。该网站使用几个 js 库(例如 Prototype)来使用自动完成来创建内容。因此,我试图插入一些值并触发事件来启动内容创建。插入和触发事件可以正常工作,但不会创建任何内容。
我是 CasperJS 的新手,发现它与库的相对路径存在问题。我怀疑我的问题是由于在我的页面环境中没有正确加载库引起的。因此,我尝试injectJs
像这样使用注入它们
// ... 创建 casper 并做一些其他的事情
casper.then(函数(){
不幸的是,这两个函数都返回 false。脚本的路径是正确的,还有哪里可能是这个问题的根源?
非常感谢您的帮助。
javascript - 用 casperjs 伪造 xmlhttprequests
我正在用 casperjs 编写端到端测试,并想伪造 ajax 服务器响应
我想出了一个想法,即包含一个模拟 xmlhttprequest 对象并始终返回我预期结果的简单脚本,如下所示
然后我打电话给setup_ajax
我的 casper 测试
但看似未来的 ajax 请求仍然避免我的 xmlhttprequest 实现。
我试过运行 setup_ajax,使用 $.ready() 并从 casper 调用它,但这些都不起作用
更有趣的是,检查对象的存在奇怪地失败了。
但是 sinon 是正确包含的,至少当我在 setup_ajax 函数之外对其进行一些调用时,casper 没有导致任何错误,但是当我故意排除 sinon 时会导致错误。
您对在 casperjs 下模拟 xmlhttprequests 有什么想法吗?
javascript - 如何使用 XPath 表达式在 CasperJS 中检索元素的属性
我在两行之间有一个网页:
我需要使用 XPath 提取“href”属性。在 CasperJS 的 API 中写了关于此的信息:clientutils.getElementByXPath。
这是我的代码:
但它失败了。它返回这个:
forms - CasperJS 中的填充方法
我想填写表格并提交。
检查我的脚本的一部分:
我得到了这个错误:
我不明白为什么我无法填写表格,因为断言结果是好的。
unit-testing - casperjs:我们可以组织像 phpunit 这样的测试套件,例如“allTests”
我想组织我的测试套件,如 phpunit
添加在同一项目中其他地方找到的所有测试的脚本
phantomjs - 抓取 CasperJS 或 PhantomJS 中的资源内容
我看到 CasperJS 有一个“下载”功能和一个“收到资源”回调,但我没有在回调中看到资源的内容,我不想将资源下载到文件系统。
我想获取资源的内容,以便我可以在我的脚本中使用它。CasperJS 或 PhantomJS 有可能吗?