簡體   English   中英

Angularjs量角器E2E測試'應用程序已經使用此元素進行自舉

[英]Angularjs Protractor E2E test 'App Already Bootstrapped with this Element'

我遇到了一個問題,我的量角器測試總是失敗並顯示錯誤消息:

UnknownError: Error Message => '[ng:btstrpd] App Already Bootstrapped with this Element '<html lang="en" data-ng-app="pmApp" class="js draganddrop no-video no-audio ng-scope">'

目前Angularjs文檔建議問題是手動引導應用程序時,而在我的情況下,情況並非如此,我們只是使用:

<html lang="en" data-ng-app="pmApp">

普通網站工作正常,沒有錯誤或警告,但是一旦我使用Protractor設置我的測試,就會發生錯誤。 需要注意的是,當我使用angularjs 1.08時測試正在通過,但是在使用1.25時失敗了

測試是這樣的:

describe('Campaigns page', function() {
var ptor;

beforeEach(function() {
    // Sets the width of the window, otherwise the default min width
    // of our site is to small and the login page un-usable
    browser.driver.manage().window().setSize(1200, 800);
    ptor = protractor.getInstance();

    browser.driver.get(ptor.baseUrl + '/login');

    browser.driver.findElement(by.id('user_email')).sendKeys('admin@aperture.*************.com');
    browser.driver.findElement(by.id('user_password')).sendKeys('*************');

    browser.driver.findElement(by.css('.button.primary')).click();

    browser.driver.wait(function() {
        return browser.driver.getCurrentUrl().then(function(url) {
            return (/\/#\/$/.test(url));
        });
    });

    // Now ensure the angular app is loaded and it knows about it
    browser.get('#/');
});

it('Should list campaigns on the page', function() {
    browser.get('#/campaigns');

    browser.findElements(by.css('.main-campaign')).then(function(results) {
        expect(results.length).toBeGreaterThan(0);
    });

});

});

*請注意為了安全起見,刪除了實際的登

一旦:browser.get('#/ campaigns');

被調用,錯誤發生。

我也嘗試使用登錄功能作為量角器conf文件中的onPrepare,但同樣的事情發生了。

任何想法或幫助將不勝感激!

完整堆棧跟蹤:

Stacktrace:
 UnknownError: Error Message => '[ng:btstrpd] App Already Bootstrapped with this Element '<html lang="en" data-ng-app="pmApp" class="js draganddrop no-video no-audio ng-scope">'

http://errors.angularjs.org/1.2.5/ng/btstrpd?p0=%3Chtml%20lang%3D%22en%22%20data-ng-app%3D%22pmApp%22%20class%3D%22js%20draganddrop %20no-video%20no-audio%20ng-scope%22%3E '由Request => {“headers”:{“Accept”:“application / json,image / png”,“Connection”:“Keep-Alive”引起“,”Content-Length“:”159“,”Content-Type“:”application / json; charset = utf-8“,”Host“:”localhost:29064“},”httpVersion“:”1.1“,”方法“:”POST“,”post“:”{\\“args \\”:[[]],\\“script \\”:\\“return(function(){\\ n //繼續引導Angular。\\ n angular .resumeBootstrap(arguments [0]); \\ n})。apply(null,arguments); \\“}”,“url”:“/ execute”,“urlParsed”:{“anchor”:“”,“query” : “”, “文件”: “執行”, “目錄”: “/”, “路徑”: “/執行”, “相對的”: “/執行”, “端口”: “”, “宿主”:” ”, “密碼”: “”, “用戶”: “”, “用戶信息”: “”, “權威”: “”, “協議”: “”, “源”: “/執行”, “queryKey”: {},“chunks”:[“execute”]},“urlOriginal”:“/ session / 64b440e0-68b9-11e3-b92a-e1efe36914bc / execute”}構建信息:版本:'2.37.0',修訂版:'a7c61cb ',時間:'2013-10-18 17:14:00'系統 info:host:'peters-mbp',ip:'192.168.0.3',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10 .9',java.version:'1.6 .0_65'

我昨天遇到過類似情況,並且能夠通過在每次測試之前添加browser.ignoresynchronisation = true來解決此問題。 如果您使用resumeBootstrap手動引導Angular應用程序,則會發生這種情況。 我還需要讓瀏覽器睡一段時間以獲得實際結果。

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM