gpt4 book ai didi

javascript - CasperJS点击按钮不会触发任何东西

转载 作者:行者123 更新时间:2023-11-28 07:25:35 25 4
gpt4 key购买 nike

我正在尝试学习 CasperJS,首先我想创建一个小的 yummly.com scraper。我想抓取 100-1000 个流行食谱的列表。

一切都很顺利,直到我尝试单击触发更多食谱加载的元素。我已经尝试了各种方法,xpath,选择器,标签。我真的不知道可能是什么问题。

这是我的代码:

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();

我真的不知道是什么导致了这个问题。

最佳答案

您的代码适用于 PhantomJS 2。

点击对于 PhantomJS 1.x 不起作用。我尝试了从 this question 点击的三种不同变体PhantomJS 版本 1.9.7 和 1.9.8:

  • 使用 JavaScript:el.dispatchEvent(ev)
  • 使用 PhantomJS:casper.page.sendEvent('click', ...)
  • 使用 jQuery:$(el).click()

它们都不起作用。因此您需要更新您的版本。

关于javascript - CasperJS点击按钮不会触发任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29695308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com