2014-12-25 18 views
5

Tôi muốn sử dụng .sendKeys() để nhập văn bản vào trường nhập, sau đó quay lại một ký tự. Tôi đã thử sử dụng mã sau đây với .sendKeys(protractor.Key.BACK_SPACE) nhưng có vẻ như nó xóa toàn bộ trường.Làm thế nào để nhập một backspace duy nhất với thước đo góc?

thử nghiệm của tôi:

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'); 

    }); 
}); 

Lỗi: Expected '' to be 'Ali Khod'.

Có cách nào để Backspace chỉ là một nhân vật duy nhất?

UPDATE:

Tôi cũng thử như sau kể từ .sendKeys() trả về một lời hứa theo mặc định.

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'); 

      }); 

     }); 

    }); 
}); 

Phép thử không thành công.

+3

Sử dụng sendKeys (protractor.Key.BACK_SPACE) chỉ hoạt động tốt cho tôi. – binarygiant

Trả lời

0

Cách giải quyết tôi thấy được những điều sau đây:

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

Thay vì sử dụng .getText(), tôi sử dụng .getAttribute('value').

+1

'.getText()' trả về mọi thứ giữa các yếu tố đã chọn bắt đầu và đóng các thẻ: '

ONLY THIS WILL BE RETURNED
'. vì đầu vào tự đóng, getText() không trả về bất kỳ thứ gì. đúng cách và không chỉ là một cách giải quyết là sử dụng getAttribute ('value'), trả về giá trị đầu vào 'Ali Khod'. – nilsK

Các vấn đề liên quan