2017-02-06 5 views
0

私は分度器を使って、confファイルで各テストの後にブラウザを再起動するように設定した角型アプリケーションをテストしています。ただし、セッションエラーが発生します。私はこれを、予想される条件を使用するヘルパークラスIの設定に追跡することができました。分度器でブラウザを再起動した後にヘルパークラスを再初期化する

'use strict'; 
let EC = browser.ExpectedConditions; 
let timeOut = 30000; 

class ProHelper { 
    constructor() {} 

    async waitForUrl(urlSubstring, time = timeOut) { 
    let isMatchingUrl = EC.urlContains(urlSubstring); 
    await browser.wait(isMatchingUrl, time, `Timed out waiting for ${urlSubstring}`); 
    } 

    ... 
} 
module.exports = ProHelper 

ヘルパークラスは、ページオブジェクトクラス内で、いくつかの仕様で使用されています。最初のテストは正常に動作します。ただし、ヘルパーメソッドの1つを使用するとすぐに2番目のメソッドが失敗します。ヘルパーメソッドは元のブラウザインスタンスを参照しているようです。私は、コンストラクタ内部とメソッド内でECを宣言しようとしましたが、同じエラーが発生します。ブラウザの再起動後にヘルパークラスを再初期化できる方法はありますか?

+0

この質問に答えるのに役立つように、テストコードも入力してください。 –

答えて

0

私はこの問題を回避するためにいくつかの変更を行いました。

  1. スペックからヘルパーの使用を削除しました。これは、ページオブジェクトクラスでのみ使用されるようになりました。
  2. 2番目私はbrowser.ExpectedConditionsを変更しました。分裂する。期待される条件。
  3. restartBrowserBetweenTestsを使用する代わりに、各仕様についてafterEachでbrowser.restart()を追加しました。

それは私のセッションの問題を解決しました。

関連する問題