gpt4 book ai didi

javascript - 如何跟踪 CasperJS 中的所有链接?

转载 作者:数据小太阳 更新时间:2023-10-29 05:45:31 25 4
gpt4 key购买 nike

我无法单击 DOM 中所有基于 JavaScript 的链接并保存输出。链接的形式为

<a id="html" href="javascript:void(0);" onclick="goToHtml();">HTML</a>

下面的代码效果很好:

var casper = require('casper').create();

var fs = require('fs');

var firstUrl = 'http://www.testurl.com/test.html';

var css_selector = '#jan_html';

casper.start(firstUrl);

casper.thenClick(css_selector, function(){
console.log("whoop");
});

casper.waitFor(function check() {
return this.getCurrentUrl() != firstUrl;
}, function then() {
console.log(this.getCurrentUrl());
var file_title = this.getTitle().split(' ').join('_') + '.html';
fs.write(file_title, this.getPageContent());
});

casper.run();

但是,我怎样才能让它与“a”的选择器一起工作,点击所有可用链接和保存内容?我不确定如何让 clickWhileSelector 从选择器中删除节点,如下所示:Click on all links matching a selector

最佳答案

我有这个脚本,它首先会从一个页面获取所有链接,然后将“href”属性保存到一个数组,然后遍历这个数组,然后一个接一个地打开每个链接并回显 url:

var casper = require('casper').create({
logLevel:"verbose",
debug:true
});
var links;

casper.start('http://localhost:8000');

casper.then(function getLinks(){
links = this.evaluate(function(){
var links = document.getElementsByTagName('a');
links = Array.prototype.map.call(links,function(link){
return link.getAttribute('href');
});
return links;
});
});
casper.then(function(){
this.each(links,function(self,link){
self.thenOpen(link,function(a){
this.echo(this.getCurrentUrl());
});
});
});
casper.run(function(){
this.exit();
});

关于javascript - 如何跟踪 CasperJS 中的所有链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20224687/

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