7

w stanie zrozumieć, dlaczego nie zwracają obiekt wartość tekstu, kodu testowego: wyjściekątomierz zwraca obiekt, ale oczekuje - wartość 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); 

konsoli:

> 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], ... 

także jeśli mogę użyć tego część z oczekiwać():

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

widzę:

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

więc z jakiegoś powodu mogę uzyskać tekst spodziewać i to prawda - „lokalizacja”

Co robię źle?

Odpowiedz

12

getText()zwraca obietnicę. Jeśli chcesz się zalogować rzeczywistej wartości, trzeba go rozwiązać:

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

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

Zauważ, że expect() jest „poprawione” w kątomierz/jasminewd rozwiązać obietnic niejawnie. Innymi słowy, można dochodzić getText() jest równa żądanej tekstem:

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

Tak wiem, że możemy korzystać z oczekiwaniami na tekście, ale w funkcji nie będzie działać dla mnie, ponieważ mamy różne tłumaczenia języka. dziękuję za przykład. w zasadzie muszę przechowywać tę "wartość" jako var i używać go do moich oczekiwań(). ale mogę zrozumieć, jak to zrobić - moja słaba znajomość js. czy możesz napisać na to prosty przykład? – kyxap

+0

@kyxap Zaktualizowałem odpowiedź, w tym wywołanie oczekiwane wewnątrz funkcji 'then()'. Czy to właśnie próbujesz powiedzieć? Dzięki. – alecxe

+0

dziękuję bardzo, to jest – kyxap

Powiązane problemy