我在 Windows 8 上的 PhantomJS 1.8.1 下使用 CasperJS 1.0.2。
尝试为网站编写测试。该站点严重依赖 JS,并且编码主体非常不寻常,这可能会造成一些问题,但我不确定。
这是我用来测试登录和搜索功能的代码:
var url = 'http://www.testsite.com/';
var casper = require('casper').create();
casper.start();
casper.start(url, function() {
this.echo('Page: ' + this.getTitle());
this.capture('start.png');
if (this.exists('input#TxtUserName')) {
this.sendKeys('input#TxtUserName', 'testlogin');
this.sendKeys('input#TxtPassword', 'testpass');
this.click('input#BtnLogin');
this.capture('loggedin.png');
}
});
casper.then(function() {
this.capture('beforesearch.png');
this.sendKeys("input#txtSearch", '1002');
this.click("input#cmdSubmit");
this.echo('Searching');
this.capture('aftersearch.png');
});
casper.run();
当我运行此代码时,屏幕截图上的每个页面都是相同的,但登录信息是在 login.png 中填写的。在单击事件之后,它绝不会实际登录(使用我的真实登录凭据)。触发该点击后,搜索结果也不会显示。
任何线索可能导致这种情况?
这是我提交搜索后的 waitFor 代码:
casper.waitForText("Part:", function() {
this.capture('searchresults.png');
});