我正在访问一个发出(大)JSON响应的网站。点击会触发请求:
casper.then(function li10() {
casper.click(SEARCH_BUTTON_CSS);
});
但根据我的网络代理,客户端会在收到整个响应之前关闭连接。我已经尝试等待网址出现了。它会按预期等待URL,但这似乎不够:
casper.then(function li11() {
casper.waitForUrl(/\/search-results\/p\?/,
function() {
var search_url = casper.getCurrentUrl();
console.log('found search results, url = ' + search_url);
},
function() {
console.log('failed to find search results');
casper.exit();
},
10000);
});
那么:我可以等待哪些可靠的东西可以保证JSON代码在进入下一步之前已完全加载?
答案 0 :(得分:0)
我假设您将填写搜索字段,单击按钮,JavaScript会发出Ajax请求以接收JSON响应,然后解析它并显示结果。
casper.waitForUrl()
用于等待页面URL更改为指定的URL。它与单独加载的资源(如AJAX响应)无关。
您需要
casper.waitForResource()
等待该特定资源或casper.waitForSelector()
注入页面时显示。