Rap*_*nah 5 angularjs protractor
我想用来.sendKeys()在输入字段中输入文本,然后退格一个字符.我尝试使用以下代码,.sendKeys(protractor.Key.BACK_SPACE)但似乎它清除了整个字段.
我的测试:
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');
});
});
Run Code Online (Sandbox Code Playgroud)
错误: Expected '' to be 'Ali Khod'.
有没有办法只退一个字符?
更新:
我也尝试过以下操作,因为.sendKeys()默认情况下返回一个promise.
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');
});
});
});
});
Run Code Online (Sandbox Code Playgroud)
测试失败了.
我发现的解决方法如下:
expect(element(by.model('invoice.customerName')).getAttribute('value')).toBe('Ali Khod');
.getText()我没有使用,而是使用了.getAttribute('value')。