我想學習CasperJS和一開始我想創建小yummly.com刮板。我想抓取100-1000種流行食譜的清單。CasperJS點擊按鈕不會觸發任何東西
一切都很好,直到我試圖點擊觸發更多食譜加載的元素。我已經嘗試了各種方法,xpath,selector,label。我真的不知道可能是什麼問題。
這裏是我的代碼:
var utils = require('utils');
var casper = require('casper').create({
verbose: true,
logLevel: 'error',
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'
}
});
var url = "http://www.yummly.com/browse/popular-now";
var x = require('casper').selectXPath;
function getLinks() {
var links = document.querySelectorAll('div.y-title a');
return Array.prototype.map.call(links, function(e) {
return e.getAttribute('href');
});
}
casper.start(url, function() {
console.log(this.getTitle());
});
// Try to click with xpath
casper.wait(2000, function() {
casper.click(x('//*[@id="more"]'));
});
// Try to click with label
casper.wait(2000, function() {
this.clickLabel('See more', 'a');
});
// Try to click with selector
casper.wait(2000, function() {
casper.click('#more');
});
// Try to wait for selector
casper.waitForSelector('#more', function() {
this.click('#more');
casper.wait(2000, function(){
links = this.evaluate(getLinks);
console.log(links);
});
});
casper.run();
我真的不知道什麼可能導致此問題。
請註冊到'resource.error','page.error','remote.message'和'casper.page.onResourceTimeout'事件([Example](https://gist.github.com/artjomb/) 4cf43d16ce50d8674fdf))。也許有錯誤。 –
不幸的是,所有這些測試似乎都可以。在我看來,問題可能是在href中調用javascript。也許CasperJS沒有正確加載Javascript。我真的不知道:( – TopperHarley
http://stackoverflow.com/questions/29616350/casperjs-click-not-firing-click-event –