Casper JS - 单击 link,等待 ajax 响应
Casper JS - click link, wait for ajax response
我是第一次尝试使用 Casper JS,我想单击 link,等待 ajax 响应并获取一个元素的值,但我似乎无法弄清楚。这是我目前所拥有的:
var casper = require('casper').create();
var phoneNumber = '';
casper.start('https://www.gumtree.com/p/3-bedrooms-rent/3-bed-mid-terrace-house-in-a-lovely-and-peaceful-part-of-hatfield-al10-area/1194478241', function() {
this.waitForSelector( '[data-q="reply-panel-reveal-btn"]' );
});
casper.then(function() {
casper.click( '[data-q="reply-panel-reveal-btn"]' );
});
casper.then( function(){
phoneNumber = document.querySelector('[data-print-key="channel:syi.reveal-phone,key:data"]').innerHTML;
});
casper.run( function(){
console.log(phoneNumber);
});
最终结果是空白,终端没有返回任何内容。有人对我哪里出错有任何指示吗?
使用 https://whosebug.com/users/1816580/artjom-b 资源,我设法使用以下方法做到了:
var casper = require('casper').create();
casper.start('https://www.gumtree.com/p/3-bedrooms-rent/3-bed-mid-terrace-house-in-a-lovely-and-peaceful-part-of-hatfield-al10-area/1194478241');
casper.thenClick( '.box-padding > .clearfix > .btn-secondary.set-right ' );
casper.waitForSelectorTextChange( '.box-padding > .clearfix > .txt-large.txt-emphasis.form-row-label', function() {
var phoneNumber = this.evaluate(function(){
return document.querySelector( ".box-padding > .clearfix > .txt-large.txt-emphasis.form-row-label" ).textContent;
});
this.echo(phoneNumber);
});
casper.run();
我是第一次尝试使用 Casper JS,我想单击 link,等待 ajax 响应并获取一个元素的值,但我似乎无法弄清楚。这是我目前所拥有的:
var casper = require('casper').create();
var phoneNumber = '';
casper.start('https://www.gumtree.com/p/3-bedrooms-rent/3-bed-mid-terrace-house-in-a-lovely-and-peaceful-part-of-hatfield-al10-area/1194478241', function() {
this.waitForSelector( '[data-q="reply-panel-reveal-btn"]' );
});
casper.then(function() {
casper.click( '[data-q="reply-panel-reveal-btn"]' );
});
casper.then( function(){
phoneNumber = document.querySelector('[data-print-key="channel:syi.reveal-phone,key:data"]').innerHTML;
});
casper.run( function(){
console.log(phoneNumber);
});
最终结果是空白,终端没有返回任何内容。有人对我哪里出错有任何指示吗?
使用 https://whosebug.com/users/1816580/artjom-b 资源,我设法使用以下方法做到了:
var casper = require('casper').create();
casper.start('https://www.gumtree.com/p/3-bedrooms-rent/3-bed-mid-terrace-house-in-a-lovely-and-peaceful-part-of-hatfield-al10-area/1194478241');
casper.thenClick( '.box-padding > .clearfix > .btn-secondary.set-right ' );
casper.waitForSelectorTextChange( '.box-padding > .clearfix > .txt-large.txt-emphasis.form-row-label', function() {
var phoneNumber = this.evaluate(function(){
return document.querySelector( ".box-padding > .clearfix > .txt-large.txt-emphasis.form-row-label" ).textContent;
});
this.echo(phoneNumber);
});
casper.run();