2017-10-25 17 views
0

私の分度器テストでは、ページ(page1)で何かしたいです。その後同じテストスクリプトで別のページ(page2)に行き、結果を確認したい。分度器テストの実行中にページのURLを変更する

describe('something', function() { 
    describe('foo', function() { 
    browser.get(url_1); 
    it("should do something with elem1 on page1", function() { 
     var elem1 = element(by.css("...")); 
     ... 
    }); 
    }); 
    describe('bar', function() { 
    browser.get(url_2); 
    it("should do something with elem1 on page2", function() { 
     var elem1 = element(by.css("...")); 
     ... 
    }); 
    }); 
}); 

url_2に移動しようとしない限り、page1からのテストが機能しています。 しかし、上記の例では、ブラウザはpage1にナビゲートし、すぐにpage2にナビゲートします。そして、私は "失敗:No要素がロケータを使って見つかりません"というエラーをページ1に表示します。 私はbrowser.getやbrowser.setLocationのようなコマンドもcontrolFlowの一部になるはずだと思いましたか?

どうすればこの問題を解決できますか?

答えて

1

browser.get(url_2);の文を以下のようにbeforeAll()の中にラップする必要があります。

describe('something', function() { 
    describe('foo', function() { 
    beforeAll(function(){ 
     browser.get(url_1); 
    }) 

    it("should do something with elem1 on page1", function() { 
     var elem1 = element(by.css("...")); 
     ... 
    }); 
    }); 
    describe('bar', function() { 

    beforeAll(function(){ 
     browser.get(url_2); 
    }) 

    it("should do something with elem1 on page2", function() { 
     var elem1 = element(by.css("...")); 
     ... 
    }); 
    }); 
}); 
+0

大変ありがとうございます。 – westor

関連する問題