使用CasperJS网站无法正常工作

时间:2013-02-21 06:51:05

标签: javascript phantomjs casperjs

我在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');
});

1 个答案:

答案 0 :(得分:0)

您应该使用casper.waitFor来确保已加载下一页。否则幻像将在表单提交被回答之前截取屏幕截图。