2015-12-02 30 views
1

我需要保存「$$('[title =」Ir al documento「]')。first()。getText();」用於在另一個窗口中比較。如何比較量角器中兩個窗口之間兩個元素的值?

it('spec', function() { 

    var text; 

    $$('#links-list a').first().click().then(function() { 
      browser.driver.getAllWindowHandles().then(function (handles) { 
       browser.driver.switchTo().window(handles[1]).then(function() { 

        browser.wait(EC.visibilityOf($('#introBienvenida .boton')), 5000); 
        $('#introBienvenida .boton').click(); 

        element(by.id("texto")).sendKeys('texto refundido'); 
        element(by.id("buttonSearch")).click(); 

        text = $$('[title="Ir al documento"]').first().getText(); // I need save to compare this value. 
        $$('[title="Ir al documento"]').first().click(); 

       }); 
       browser.driver.close(); 
       browser.driver.switchTo().window(handles[0]); // Back again. 
      }); 
     }); 

     expect($('#adDoc0 .AD-objetivo').getText()).toEqual(text); // I need assert the content of text 

}); 

編輯:

我需要的是元素的值與手柄1和元素的窗口帶手柄0

首先值我在元點擊比較窗口窗口與句柄0,然後我單擊窗口中的文檔與句柄1,我得到一個值後,我必須回到窗口與句柄0得到一個值,並與窗口的值與手柄1的值進行比較。

回答

1

量角器是根據承諾和回調的原則而開發的。 getText()函數返回帶有文本值的承諾。有很多方法可以處理這種情況,

  1. 期望它在getText()函數的承諾內。 (這個已經發布爲@ user2020347的答案)。
  2. 保存它使用全局變量,然後使用它,你需要的功能之外 -

    var text; 
    $$('#links-list a').first().click().then(function() { 
        //switch to window 1 
        $$('[title="Ir al documento"]').first().getText().then(function(windowOneText){ 
         text = windowOneText; 
        }); 
        //close the windows to go back to first window 
    }); 
    expect($('#adDoc0 .AD-objetivo').getText()).toEqual(text); 
    
  3. 它傳遞到下一個回調函數作爲參數 -

    var text; 
    $$('#links-list a').first().click().then(function() { 
        //switch to window 1 
        $$('[title="Ir al documento"]').first().getText().then(function(windowOneText){ 
         text = windowOneText; 
        }); 
        //close the windows to go back to first window 
        return text; 
    }).then(function(argText){ 
        expect($('#adDoc0 .AD-objetivo').getText()).toEqual(argText); 
    }); 
    

希望能幫助到你。

+0

解決了選擇2.我忘了getText()返回promise。謝謝! – winlinuz

0

我認爲你需要通過一個親瀨。

$$('[title="Ir al documento"]').first().getText().then(function(documentTitleText){ 
    browser.driver.switchTo().window(handles[0]); 
    expect($('#adDoc0 .AD-objetivo').getText()).toEqual(documentTitleText); 
}); 
+0

我需要的是將窗口中Element的值與句柄1進行比較,以及窗口句柄爲0的Element的值。 – winlinuz