7

Невозможно понять, почему он возвращает объект, а не значение текста, некоторый тестовый код:транспортир возвращает объект, но ожидается - значение element.getText()

describe('columns swap', function() { 

    describe('location column ', function() { 
     it('should swap right', function() { 
      browser.sleep(10000); 
      var fColumn = element(by.xpath('(//*[@class="k-link"])[2]')).getText(); 
      console.log(fColumn); 

Консоль вывода:

> columns swap 
>  location column { ptor_: { controlFlow: [Function], 
>  schedule: [Function], 
>  getSession: [Function], 
>  getCapabilities: [Function], 
>  quit: [Function], 
>  actions: [Function], 
>  executeScript: [Function], 
>  executeAsyncScript: [Function], 
>  call: [Function], 
>  wait: [Function], 
>  sleep: [Function], 
>  getWindowHandle: [Function], 
>  getAllWindowHandles: [Function], 
>  getPageSource: [Function], 
>  close: [Function], 
>  getCurrentUrl: [Function], ... 

Кроме того, если я использую эту часть с ожидать():

expect(columnSorting.acpColumn.getText()).to.eventually.equal(fColumn); 

Я вижу:

1) columns swap location column should swap right: 
    AssertionError: expected 'Location' to equal { Object (ptor_, parentElement 
ArrayFinder, ...) } 

Так почему я могу получить текст из ожидать, и это правильно - «Location»

Что им делать неправильно?

ответ

12

getText()возвращает обещание. Если вы хотите, чтобы войти фактическое значение, вы должны решить его:

element(by.xpath('(//*[@class="k-link"])[2]')).getText().then(function (value) { 
    console.log(value); 

    expect(columnSorting.acpColumn.getText()).to.eventually.equal(value); 
}); 

Обратите внимание, что expect() является «заплата» в транспортир/jasminewd разрешить обещания неявно. Другими словами, вы можете утверждать, getText() равна нужный текст:

expect(element(by.xpath('(//*[@class="k-link"])[2]')).getText()).toEqual('My Text'); 
+0

Да, я знаю, что мы можем использовать как ожидается text-, но в особенности это не будет работать для меня, потому что у нас будет другой перевод язык. Благодарю вас за пример. в основном мне нужно сохранить это значение как var и использовать его для моего ожидания(). но я могу понять, как это сделать - мое плохое знание js. можете ли вы написать простой пример? – kyxap

+0

@kyxap Я обновил ответ, включая вызов ожидания внутри функции 'then()'. Это то, что вы пытаетесь сказать? Благодарю. – alecxe

+0

большое спасибо – kyxap

Смежные вопросы