当我使用
时this.click("#menuContainer > div > ul > li.menu_item_219 > a");
有效! 但是当我在 this.evaluate(function(){})中使用此代码时,
document.querySelector("#menuContainer > div > ul > li.menu_item_219 > a").click();
它不起作用。 这是代码:
phantom.outputEncoding="GBK";
var casper = require("casper").create({
verbose: true,
logLevel: 'info',
clientScripts: [
'G:/Web/jquery-2.1.4.min.js'
],
pageSettings: {
loadImages: false,
loadPlugins: false,
userAgent: "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36"
}
});
casper.options.waitTimeout = 100000;
casper.start("http://qzone.qq.com/");
casper.then(function(){
this.page.switchToChildFrame(0);
this.fill('form#loginform',{
'u':"myusername",
'p':"mypassword"
},false);
this.echo("filled");
});
casper.then(function(){
this.click('input[id="login_button"]');
});
casper.waitForSelector('a#tab_menu_care',function(){
this.click("#menuContainer > div > ul > li.menu_item_219 > a");
//DO NOT WORKING!
// this.evaluate(function(){
// var a = document.querySelector("#menuContainer > div > ul > li.menu_item_219 > a");
// __utils__.echo(a);
// a.click();
// });
});
casper.wait(5000,function(){
this.capture("after-click.png");
this.echo(this.getCurrentUrl());
});
casper.run();
捕获“after-click.png”以查看它是否有效。 我的代码有什么问题吗?我已经在stackoverflow上搜索了整整一天的答案,但没有什么是有害的_(:з∠)_ 希望有人可以帮助我!