CasperJS表单AJAX结果不会出现
我正试图在提交表单后刮取一些网站结果 使用Chrome开发者工具控制台,我能够填写表格并提交。在“网络”选项卡上,有两篇文章,然后结果显示在页面上 我试图用CasperJS模拟这个过程,但没有成功CasperJS表单AJAX结果不会出现,ajax,webforms,casperjs,Ajax,Webforms,Casperjs,我正试图在提交表单后刮取一些网站结果 使用Chrome开发者工具控制台,我能够填写表格并提交。在“网络”选项卡上,有两篇文章,然后结果显示在页面上 我试图用CasperJS模拟这个过程,但没有成功 var casper = require('casper').create({ clientScripts: ["./jquery.min.js"], verbose: true, logLevel: 'debug', pageSettings: { loadImages: false,
var casper = require('casper').create({
clientScripts: ["./jquery.min.js"],
verbose: true,
logLevel: 'debug',
pageSettings: {
loadImages: false,
loadPlugins: false,
userAgent: 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36',
webSecurityEnabled: false,
}
});
casper.start('https://ptabtrials.uspto.gov', function() {});
casper.thenOpen('https://ptabtrials.uspto.gov/prweb/PRWebLDAP2?UserIdentifier=searchuser', function() {
this.evaluate(function(search){
return jQuery('input#SearchTrialNumber').attr({'value': search});
}, 'ipr');
this.evaluate(function(){
return jQuery('div.pzbtn-mid:contains("Search")').click();
});
});
这下一部分就是它断裂的地方。页面似乎从未刷新过新内容,并且进程挂起在casper.waitUntilVisible
:
casper.waitUntilVisible("#PEGA_GRID_CONTENT", function(){
var results = this.evaluate(function(){
return jQuery("#PEGA_GRID_CONTENT tr.cellCont").size();
});
console.log(JSON.stringify(results));
});
终端以[warning][phantom]Casper.waitFor()超时响应。使用waitFor()似乎是正确的,因为表单是用AJAX刷新的
我修改了jQuery以避免$
命名空间与现有代码冲突,改为使用jQuery
。div.pzbtn-mid:contains(“搜索”)
上没有单击处理程序。你应使用:
this.evaluate(function(){
return jQuery('button:contains("Search")').click();
});
而不是
this.evaluate(function(){
return jQuery('div.pzbtn-mid:contains("Search")').click();
});
非常感谢你的帮助!我还有一个问题。JS弹出窗口似乎没有被检测到,这在控制台中有效,但在CasperJS中仍然无效。是否有一种很好的调试方法?如果选择器单击不起作用,您可以尝试将casper
鼠标
模块与XPath选择器鼠标一起使用。单击(x(“//a[contains(text(),'IPR')]”)
或在页面上下文中正确的鼠标位置上自己创建mousedown和mouseup事件。网站上的点击操作有些可疑。