我有更多Casper麻烦,这次我告诉Casper点击一个href,它会将它重定向到一个页面,将其重定向到twitter app auth页面:
var casper = require('casper').create({
verbose: false,
logLevel: 'debug',
waitTimeout: 10000
});
phantom.cookiesEnabled = true;
casper.start('http://foo.bar', function afterstart() {
if (this.exists('#back-to-top')) {
this.echo('BOOYA! foo.bar is loaded', 'INFO');
} else {
this.echo('Page didnt load, something went all screwy.', 'ERROR');
}
});
casper.then(function signin() {
this.click('a[href="/sys/login"]' );
});
casper.then(function tellsignin() {
if (this.exists('#not-logged-in ')) {
this.echo("I clicked on twitter login button, so now the twitter login page is loaded.", 'INFO');
} else {
this.echo('Twitter login link didnt work, something went wacky');
};
});
当我运行它时,控制台错误输出是这个,还有一些其他不重要的东西:
Test file: testingtest.js
BOOYA! foo.bar is loaded
Twitter login link didnt work, something went wacky
我已经尝试查找解释,并找到了this组线程,但遗憾的是它没有为我的问题提供任何答案。 有谁知道Casper没有重定向的任何可能原因?
答案 0 :(得分:10)
感谢您的所有帮助和支持,我已经解决了这个问题,哈哈!发生了什么事情是在浏览器有时间重定向到twitter app auth页面之前执行了tellignin函数,所以我只是添加了一个this.waitForText('授权foo-bar应用程序来使用你的帐户?')来登录功能