【发布时间】:2015-04-28 04:26:20
【问题描述】:
我正在尝试使用 CasperJS 在 Google 搜索中单击“下一步”按钮,但出现以下错误:
CasperError: Cannot dispatch mousedown event on nonexistent selector: #pnnext
该按钮方便地使用 ID #pnnext 进行标记。我尝试使用 CSS 选择器和 xPath,使用几种不同的方法来执行点击。它们概述如下:
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
waitTimeout: 20000
});
casper.defaultWaitForTimeout = 20000
var x = require('casper').selectXPath;
var config = {
url: 'https://www.google.co.uk/search?site=&source=hp&q=house&oq=house&gs_l=hp.3..35i39l2j0l2j0i3j0l5.136980.137617.0.137690.7.7.0.0.0.0.106.450.3j2.5.0.starcytweb...0...1.1.62.hp..4.3.302.0.IK858rPmk0I'
};
casper.start(config.url);
/* INSERT CODE HERE */
casper.then(function() {
this.capture('screenshot.png');
console.log('New location is ' + this.getCurrentUrl());
this.page.close();
this.exit();
});
casper.run();
尝试 #1
casper.thenClick("#pnnext");
尝试 #2:
casper.then(function(){
this.evaluate(function() {
document.getElementById('pnnext').click();
});
});
尝试 #3:
casper.then(function(){
this.evaluate(function() {
document.querySelector('#pnnext').click();
});
});
尝试 #4(超时):
casper.waitForSelector("#pnnext", function(){
this.click('#pnnext');
}, function(){ console.log("Time out"); }, 20000);
尝试 #5:
casper.then(function(){
this.click(x('//*[@id="pnnext"]'));
});
顺便说一句,我也尝试过执行此sample code 无济于事。我做错了吗?
phantomjs -> v1.9.8
casperjs -> v1.1.0-beta3
【问题讨论】:
标签: javascript xpath css-selectors casperjs