0

Windows 8 の PhantomJS 1.8.1 で CasperJS 1.0.2 を使用しています。

Web サイトのテストを作成しようとしています。このサイトは 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');
});
4

1 に答える 1

0

casper.waitFor次のページが読み込まれたことを確認するために使用する必要があります。そうしないと、ファントムはフォームの送信に応答する前にスクリーンショットを撮ります。

于 2013-02-21T07:31:52.017 に答える