2015-09-29 42 views
0

我正在爲我的一個應用程序開發e2e測試套件。我們有一個非角度站點的sso,我們的站點是一個角度站點。在我的測試開始我做出SSO設置的呼叫:量角器忽略同步問題

browser.ignoreSynchronization = true;   
browser.get(browser.baseUrl + '/agoda/home?mock=mock-jax); 

我能夠成功地登錄並重定向到我的應用程序,它是一個角點。我設置了browser.ignoreSynchronization = false;只要我重定向到我的應用程序和它的加載。此後沒有任何工作。

我嘗試閱讀以下內容:

var books= element.all(by.repeater('book in books')); 
console.log(licenses.count()); 

成果轉化

{ ptor_: 
    { controlFlow: [Function], 
    schedule: [Function], 
    setFileDetector: [Function], 
    getSession: [Function], 
    getCapabilities: [Function], 
    quit: [Function], 
    actions: [Function], 
    touchActions: [Function], 
    executeScript: [Function], 
    executeAsyncScript: [Function], 
    call: [Function], 
    wait: [Function], 
    sleep: [Function], 
    getWindowHandle: [Function], 
    getAllWindowHandles: [Function], 
    getPageSource: [Function], 
    close: [Function], 
    getCurrentUrl: [Function], 
    getTitle: [Function], 
    findElementInternal_: [Function], 
    findDomElement_: [Function], 
    findElementsInternal_: [Function], 
    takeScreenshot: [Function], 
.. 
} 

我相信這事做與ignoreSynchronization,但不知道我做錯了什麼?

+0

請閱讀console.log(licenses.count());作爲console.log(books.count()); –

回答

1

您沒有看到count()函數在其執行後作爲回調返回的承諾。量角器是建立在帶有承諾的異步WebDriverJs模型上的。它與你的ignoreSynchronization沒有任何關係,並且你正在控制檯記錄一個量角器實例對象而不是它的值。您需要控制檯記錄通過承諾返回的值。下面是如何 -

var books= element.all(by.repeater('book in books')); 
books.count().then(function(booksCount){ 
    console.log(booksCount); 
}); 

在上面的代碼中使用.then()應該解決您的問題的上述方法。 More about promises。希望能幫助到你。