セレン分度器テストで非同期と待機を使用する

TrevDev

分度器テストで非同期を使用して待機するにはどうすればよいですか?

it('test async', function(){
    var value = 0;
    function asyncAction() {
        return browser.driver.wait(()=>true)
            .then(function () {
                console.log('a');
                return value++;
            });
    }
    //-Problem Area-
    async function doAwait(){
        await asyncAction();
        return asyncAction();
    }

    doAwait();

    protractor.promise.controlFlow().execute( () => {
        console.log('b');
        expect(value).toBe(2);
    });
});

ここでの出力は

  • A
  • b
  • A

期待関数doAwait(){await asyncAction();の時点で値は1です。asyncAction();を返します。}

私はこれを次のように考えるのが好きです

function doAwait(){
  asyncAction().then(()=>asyncAction());
}

これは機能しますが、上記の非同期doAwaitは機能しません。これは、ジェネレーターがセレンの制御フローを壊すためだと思います。

TrevDev

これを分度器構成に追加すると機能します。

var webdriver = require.main.require('selenium-webdriver');
Promise = webdriver.promise.Promise;
Object.assign(Promise, webdriver.promise);
Promise.resolve = Promise.fulfilled;
Promise.reject = Promise.rejected;

すべての約束が管理された約束であるとは限らないかもしれませんが?

他のソリューションでは、各非同期関数をラップする必要があることに注意してください。

protractor.promise.controlFlow().execute( async () => {
    await asyncAction();
    return asyncAction();
});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

分度器テストを非同期/待機に移動(セレン制御フローを残す)

分類Dev

待機を伴うAngular分度器テストの非同期性

分類Dev

分度器のonPrepareに非同期httpリクエストを待機させる

分類Dev

分度器(ジャスミンを使用)でブロッキング待機を実装して非同期関数を呼び出し、関数が戻った直後にテストに失敗するにはどうすればよいですか?

分類Dev

分度器での非同期/待機について説明する

分類Dev

分度器セレンで単一のテストを実行します

分類Dev

分度器セレンで単一のテストを実行します

分類Dev

分度器でボタンテキストを取得する

分類Dev

ジャスミンとCucumberJSを分度器で使用する方法

分類Dev

$ resourceを使用すると、分度器がページとの同期を待機してタイムアウトします

分類Dev

appiumで分度器スクリプトを実行しているときに非同期スクリプトの結果を待機してタイムアウトしました

分類Dev

コンテキストキャンセルで非同期/待機パターンを実行する

分類Dev

分度器:分度器がページと同期するのを待っている間にエラーが発生しました:「angularJSのテスト可能性と角度テスト可能性の両方が定義されていません

分類Dev

分度器:ページ変更後の角度を待つ(非同期/待機)

分類Dev

分度器待機コマンドは、ブートストラップモーダルが表示されるのを待つことができません

分類Dev

分度器/ジャスミンテストで約束を待つ方法は?

分類Dev

分度器/セレンを使用してマウスを任意のポイントに移動する方法

分類Dev

分度器-テストが実行されているセレンノードを取得します

分類Dev

分度器とジャスミンでURL#fragmentをテストする予定です

分類Dev

パフォーマンステストに分度器を使用する

分類Dev

セレンとウェブドライバーの接続を閉じると、分度器のテストが失敗する

分類Dev

分度器-e2eテストにJasmineでタグを使用する方法

分類Dev

分度器の入力でテキストを取得する方法

分類Dev

BrowserstackAutomateで分度器テストを実行する

分類Dev

分度器テストでjhipsterアプリを生成する方法

分類Dev

分度器で動的URLをテストする

分類Dev

分度器でag-gridをテストする方法は?

分類Dev

分度器テストでhttp応答を変更する

分類Dev

分度器とジャスミン:リダイレクトをテストするにはどうすればよいですか?

Related 関連記事

  1. 1

    分度器テストを非同期/待機に移動(セレン制御フローを残す)

  2. 2

    待機を伴うAngular分度器テストの非同期性

  3. 3

    分度器のonPrepareに非同期httpリクエストを待機させる

  4. 4

    分度器(ジャスミンを使用)でブロッキング待機を実装して非同期関数を呼び出し、関数が戻った直後にテストに失敗するにはどうすればよいですか?

  5. 5

    分度器での非同期/待機について説明する

  6. 6

    分度器セレンで単一のテストを実行します

  7. 7

    分度器セレンで単一のテストを実行します

  8. 8

    分度器でボタンテキストを取得する

  9. 9

    ジャスミンとCucumberJSを分度器で使用する方法

  10. 10

    $ resourceを使用すると、分度器がページとの同期を待機してタイムアウトします

  11. 11

    appiumで分度器スクリプトを実行しているときに非同期スクリプトの結果を待機してタイムアウトしました

  12. 12

    コンテキストキャンセルで非同期/待機パターンを実行する

  13. 13

    分度器:分度器がページと同期するのを待っている間にエラーが発生しました:「angularJSのテスト可能性と角度テスト可能性の両方が定義されていません

  14. 14

    分度器:ページ変更後の角度を待つ(非同期/待機)

  15. 15

    分度器待機コマンドは、ブートストラップモーダルが表示されるのを待つことができません

  16. 16

    分度器/ジャスミンテストで約束を待つ方法は?

  17. 17

    分度器/セレンを使用してマウスを任意のポイントに移動する方法

  18. 18

    分度器-テストが実行されているセレンノードを取得します

  19. 19

    分度器とジャスミンでURL#fragmentをテストする予定です

  20. 20

    パフォーマンステストに分度器を使用する

  21. 21

    セレンとウェブドライバーの接続を閉じると、分度器のテストが失敗する

  22. 22

    分度器-e2eテストにJasmineでタグを使用する方法

  23. 23

    分度器の入力でテキストを取得する方法

  24. 24

    BrowserstackAutomateで分度器テストを実行する

  25. 25

    分度器テストでjhipsterアプリを生成する方法

  26. 26

    分度器で動的URLをテストする

  27. 27

    分度器でag-gridをテストする方法は?

  28. 28

    分度器テストでhttp応答を変更する

  29. 29

    分度器とジャスミン:リダイレクトをテストするにはどうすればよいですか?

ホットタグ

アーカイブ