我目前正在尝试从GET调用中获取json值(主要是url)并将其分配给变量。我会极其喜欢循环遍历值并用casper打开每个url。但是,我看到通过使用casperjs的ajax调用获取值的概念不正确。我仔细阅读了文档,但似乎不明白为什么我仍然会收到错误ReferenceError: Can't find variable: __utils__
?
casper.start();
var url = "http://dev.web-ui.com/generate.php";
casper.then(function(url) {
var results = __utils__.sendAJAX(url, "GET");
});
casper.run();
答案 0 :(得分:1)
你至少有两个问题:
url
参数不是URL,而是包含URL的最后加载的页面资源对象。
__utils__
在页面上下文之外不可用。如果需要,您可以要求它,但这可能无法解决您的问题,因为页面上下文之外的虚拟document.location
与您要查询的URL没有相同的域,因此请求可能会失败跨域限制。最好在页面上下文中执行此操作。
示例代码:
casper.then(function(resource) {
var results = this.evaluate(function(url){
return __utils__.sendAJAX(url, "GET");
}, resource.url);
this.echo(results);
});
答案 1 :(得分:0)
你是否在考试中?如果是这样,也许var __utils__ = require('clientutils').create();
会修复它。不幸的是,我现在不能自己尝试。