gpt4 book ai didi

javascript - 单击带有 phantom.js 的链接并检索文档 html

转载 作者:行者123 更新时间:2023-11-29 10:21:51 24 4
gpt4 key购买 nike

我是 phantom.js 的新手,我正在尝试在网站页面上导航,使用 phantom.js 单击链接(调用 AJAX 函数并更改文档 HTML)。

这是我的代码:

window.setTimeout(function(){
phantom.exit();
}, 120000);

var page = require('webpage').create();

page.open("http://example.com", function(status) {
if (status !== 'success') {
console.log('{"error":"Unable to load the address for page"}');
phantom.exit();
}

var action = page.evaluate(function() {
document.getElementById("anID").click();
return "clicked";
});

var results = page.evaluate(function() {
return document.documentElement.innerHTML;
});

console.log(action);

window.setInterval(function() {
console.log(results);
phantom.exit();
}, 3000);
});

我很困惑,因为在我的“操作”函数中,click() 调用引发了重复 3 次的错误:

TypeError: 'undefined' is not a function
phantomjs://webpage.evaluate():3 phantomjs://webpage.evaluate():1
ph.js:121 null

TypeError: 'undefined' is not a function
phantomjs://webpage.evaluate():3 phantomjs://webpage.evaluate():1
ph.js:121 null

TypeError: 'undefined' is not a function
phantomjs://webpage.evaluate():3 phantomjs://webpage.evaluate():1
ph.js:121 null

此外,如果我在发送点击时注释该行,则操作函数不会再引发错误并返回“已点击”的控制台日志。但是 3 次...

我做错了什么?

提前致谢。

最佳答案

我终于用这段代码完成了我的任务。我跳过了点击操作,直接进入了 AJAX 调用:

    // phantomjs test.js 'http://www.example.com' 'anID'

var system = require('system');
var page = require('webpage').create();
var url = system.args[1];
var target = system.args[2];

page.onConsoleMessage = function (msg) {
console.log(msg);
phantom.exit();
};

page.open(url, function (status) {
function evaluate(page, func) {
var args = [].slice.call(arguments, 2);
var fn = "function() { return (" + func.toString() + ").apply(this, " + JSON.stringify(args) + ");}";
return page.evaluate(fn);
}
page.injectJs('jquery-1.7.2.min.js');
if (status === 'success') {
evaluate(page, function(target) {
$.ajax({
type: 'POST',
url: document.URL,
data: "__EVENTTARGET=" + target,
success: function(msg){
console.log(msg);
}
});
}, target);
}
});

关于javascript - 单击带有 phantom.js 的链接并检索文档 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10112477/

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