【发布时间】:2015-03-27 03:48:09
【问题描述】:
我正在测试 AngularUI - 输入掩码, 这是我的代码的一部分:
it('should validate the peopleID', function() {
element(by.id('pid')).clear().sendKeys("H12333333A").then(function() {
expect(element(by.id('pid')).getAttribute('value')).not.toMatch("H12333333A");
});
element(by.id('pid')).clear().sendKeys("H123333331").then(function() {
expect(element(by.id('pid')).getAttribute('value')).toMatch("H123333331");
});
});
错误信息是:
Expected: '' to match 'H123333331'.
另一个测试代码:
it('just a little test', function() {
browser.get("http://angular-ui.github.io/ui-utils/");
browser.ignoreSynchronization = true;
element(by.css('[ng-click="y = \'(999) 999-9999\'"]')).click().then(function() {
element(by.name('masked')).clear().sendKeys("999248551a").then(function() {
expect(element(by.name('masked')).getAttribute('value')).not.toMatch("999248551a");
});
element(by.name('masked')).clear().sendKeys("9992485512").then(function() {
expect(element(by.name('masked')).getAttribute('value')).toMatch("9992485512");
});
});
});
错误信息是:
Expected: '(992) 485-5129' to match '(999) 248-5512'.
My Configuration:
protractor 1.6.1
selenium-server-standalone 2.44.0
Chrome 40.0.2214.93
IE 11
Firefox 34.0.5
浏览器执行clear() 和sendKeys() 然后执行expect 语句,但它没有在第一次测试时将文本插入<input ...>,所以我得到了空文本。在第二次测试时,它没有完全清除输入值。
看起来像 github 问题#1511:https://github.com/angular/protractor/issues/1511 ,但问题说它只是发生在“仅火狐”。我已经尝试将焦点转移到 在插入错误文本和正确文本之间的另一边,再次收到相同的错误消息。
那我做错了什么?非常感谢。
【问题讨论】:
-
这对你有用吗? gist.github.com/hankduan/418ea946cb5129fe0606。我刚刚尝试了一个公共网站,它可以工作。
-
它工作正常,但我注意到 clear().sendKeys() 在我测试输入掩码时失败了。我添加了第二个测试及其错误消息,也许“输入掩码”是关键点?
标签: javascript angularjs selenium webdriver protractor