2016-03-30 43 views
2

に非角度ログイン私がサイトに到達する前には、私は分度器:それは渡して、非角度ページですが、角度サイト

var url = 'http://localhost:9999/login?usern=bar'; 
browser.driver.get(url); 

最初のログイン(非角度)のページを訪問する必要がテストされます?usern=barをURLに入力すると、サーバーは302のHTTP CODEを返し、ページ/new-userにリダイレクトします。 new-userページの中に私がテスト

を開始する前に、ボタンをクリックする必要があります。しかし何でも私は、私はいつも

Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL. 

を取得し、私はnew-userページを見ることができるので、間違った何かが、私の流れの中にありますが、ボタンがクリックされない(と長い後にエラーが表示されていること)

specファイル:

var Site = require('helper/site'); 

describe('Main', function { 
    beforeAll(function() { 
     return Site.login(); 
    }); 

    it('should show the main page', function() { 
     epect(browser.getCurrentUrl()).toMatch(/\/main/); 
    }); 
}); 

Site.js :

describe('Main', function { 
    beforeAll(function() { 
     browser.ignoreSynchronization = true; 
     return Site.login(); 
    }); 

    it('should show the main page', function() { 
     browser.ignoreSynchronization = false; 

     expect(browser.getCurrentUrl()).toMatch(/\/main/); 
    }); 
}); 

ものの、それをオフにするには良い場所を考えると、その後にもう一度一度:

function login() { 
    browser.driver.get('http://localhost:9999/login?usern=bar'); 

    browser.driver.wait(function() { 
     return browser.driver.getCurrentUrl().then(function (url) { 
      return /\/new-user/.test(url); 
     }); 
    }); 

    element(by.css('.save')).click(); 
} 

module.exports = { 
    login: login 
}; 

すべてのヘルプはあなたがオフの同期をオンにする必要があり

答えて

1

をいただければ幸いですメインページにあります。

+0

これははるかに優れています!これでメインページに移動します。しかし、私はまだ同じタイムアウトエラーが発生します。しかし、 'browser.ignoreSynchronization = false;'を削除した場合、テストは完了します。何が起こるのか? –

+0

@JeanlucaScaljeri hm、メインページにあるときに 'browser.waitForAngular()'を追加するとどうなりますか?ありがとう。 – alecxe

+0

'browser.waitForAngular()'は、 'browser.ignoreSynchronization = false;'(waitForAngularと組み合わせて)を追加するとすぐにテストを実行せず、タイムアウトが発生します。 –