0

いくつかの検証と頻繁に使用される操作を含む 1 つの basic_function.js スクリプト ファイルがあります。私が言ったように、以下は検証部分です(例)

exports.validation = function (casper) {
return casper
.then(function () {
    this.exists('1st Element ID',"Log Out button exist");
    this.exists('2nd Element ID', "Shareable link exists");
    });
};

これは、呼び出すだけですべてのスクリプトで使用されます

functions.validation (casper);

テスト スイート (約 10 ~ 12 個のテスト スクリプトで構成される) の実行を開始すると、最初のいくつかのスクリプトが検証部分で渡され、一部のスクリプトが検証部分で失敗し、ログにそれが出力されることがあります。

共有可能なリンクに一致する要素が見つかりませんでした

そして次のスクリプトで渡されます。なぜこのように振る舞うのか、私にはわかりません

4

2 に答える 2

0

これがあなたの求めているものかどうかは 100% わかりませんが、失敗を避けるために、CasperJS スクリプトに待機時間を追加する必要がありました。いくつかの方法を次に示します。

casper.then(function(){
    this.wait(1000, function(){
        test.assertTitle('The Title', 'It all works');
    });
});

または、特定の要素がページに表示されるのを待ってから、アサーションなどを実行できます。

casper.then(function(){
    casper.waitUntilVisible('#someID', function(){
        test.assertTitle('The Title', 'It all works');
    });
});

ここにあなたがチェックアウトするためのドキュメントがあります

于 2015-09-09T15:53:22.757 に答える
-1

問題をより明確にするために、いくつかのコードが役立つ場合があります。しかし、一連のテストを実行していて、これらのテストの間にテスト対象を変更するコードがある場合は、オプションを変更した後、待機する必要がある場合があります。より明確にするために、私が言おうとしていることの例を示します。私はcasperで多くのウェブサイトテストを行っているので、ホームページを開くテストを書いた場合、これは(あるレベルで)何が起こっているのかについての私の最善の推測です. 検索バーに何かを入力すると、すぐに結果ページで何かをテストします。ページからページへの切り替えには明らかに読み込み時間がかかり、1、2 秒待たないと結果ページをテストできないため、エラーが発生します。したがって、通常、私は casper.waitForSelector() を使用しますが、あなたのケースでは、十分と思われる時間をハードコードする casper.wait() だけが必要な場合があります。

于 2015-08-14T15:55:04.057 に答える