2014-12-25 11 views
5

Chciałbym użyć .sendKeys(), aby wprowadzić tekst w polu wejściowym, a następnie cofnąć jeden znak. Próbowałem użyć następującego kodu z .sendKeys(protractor.Key.BACK_SPACE), ale wydaje się, że czyści całego pola.Jak wprowadzić pojedynczy backspace z Kątomierzem?

Moje testy:

describe('backspace', function() { 
    it('types some stuff and backspaces one character', function() { 
     element(by.model('invoice.customerName')).sendKeys('Ali Khoda'); 

     element(by.model('invoice.customerName')).sendKeys(protractor.Key.BACK_SPACE); 

     expect(element(by.model('invoice.customerName')).getText()).toBe('Ali Khod'); 

    }); 
}); 

Błąd: Expected '' to be 'Ali Khod'.

Czy istnieje sposób backspace tylko pojedynczy znak?

UPDATE:

Próbowałem zostały również następujące od .sendKeys() zwraca obietnicę domyślnie.

describe('backspace', function() { 
    it('types some stuff and backspaces one character', function() { 
     element(by.model('invoice.customerName')).sendKeys('Ali Khoda').then(function() { 

      element(by.model('invoice.customerName')).sendKeys(protractor.Key.BACK_SPACE).then(function() { 

       expect(element(by.model('invoice.customerName')).getText()).toBe('Ali Khod'); 

      }); 

     }); 

    }); 
}); 

Test nie powiedzie się tak samo.

+3

Korzystanie z funkcji sendKeys (protractor.Key.BACK_SPACE) działało dobrze dla mnie. – binarygiant

Odpowiedz

0

Obejście znalazłem był następujący:

expect(element(by.model('invoice.customerName')).getAttribute('value')).toBe('Ali Khod');

Zamiast .getText() użyłem .getAttribute('value').

+1

'.getText()' zwraca wszystko między wybranymi elementami znaczniki początkowe i końcowe: '

ONLY THIS WILL BE RETURNED
'. ponieważ wejście samo się zamyka, getText() nic nie zwraca. właściwą drogą, a nie tylko obejściem jest użycie getAttribute ("value"), która zwraca wartość wejściową "Ali Khod". – nilsK