一般来说,我对 casperjs 和 javascript 还是很陌生,但我在其他领域拥有相当丰富的编码经验。目前我试图运行的代码只是去一个网站并点击一个链接,这应该很简单,但我遇到了麻烦。
var casper = require('casper').create();
var x = require('casper').selectXPath;
casper.start('http://www.guru.com/emp/search.aspx?keyword=#&&page=1&sort=Earnings');
casper.then(function() {
this.test.assertExists({
type: 'xpath',
path: '//*[@class="paddingLeft5 txt11px txt666"]/a[text()="Next"]'
}, "Got Here");
});
casper.then(function() {
var firstUrl = this.getCurrentUrl()
});
casper.thenClick(x('//*[@class="paddingLeft5 txt11px txt666"]/a[text()="Next"]'), function() {
console.log("Woop!");
});
casper.waitFor(function check() {
return this.evaluate(function() {
return this.getCurrentUrl() != firstUrl;
});
}, function then() {
console.log(this.getCurrentUrl());
});
casper.run();
目前这在 5000 毫秒后超时而没有包裹在 waitFor 中,它只是打印相同的 url 两次。