我正在尝试在量角器中编写一个简单的"登录失败"测试。问题是,我无法指向(不知道如何)源代码中的特定字符串。
我尝试了各种各样的东西,比如:cssContainingText,等于,获取文本等(也许没关系,但我做错了)。
测试:
describe('login to POC', function() {
it('should login to POC', function() {
browser.get('http://emeaherz-swaqal:8080/web-client/login.html#/login');
element(by.model('echos_username')).sendKeys('super1');
element(by.model('echos_password')).sendKeys('super');
element(by.id('loginButton')).click();
expect(by.id('action-messages')).getText('The following error(s) occurred:').isPresent()).toBe(true);
});
});
请查看源代码。
我真的需要这里的建议!
网页来源
我得到的错误是:
@alecxe
1) 登录 POC应登录 POC 消息: NoSuchElementError: 使用定位器找不到元素:By.cssSelector(".action-messages") 堆栈跟踪: NoSuchElementError: 使用定位器找不到元素:By.cssSelector(".action-messages")==== 异步任务 ====异步测试函数:it()错误 在 [对象对象]。(/localfs/Poc/qapoc1/ECHOS-V2-POC/tests/fail_login.js:16:18)错误 在 [对象对象]。(/localfs/Poc/qapoc1/ECHOS-V2-POC/tests/fail_login.js:6:3) 在对象。(/localfs/Poc/qapoc1/ECHOS-V2-POC/tests/fail_login.js:1:63)
在4.942秒内完成1 次测试、1 次断言、1 次失败
您错过了element
电话,我认为您可以期待错误消息的文本。取代:
expect(by.id('action-messages')).getText('The following error(s) occurred:').isPresent()).toBe(true);
跟:
expect($('#action-messages ul li').getText()).toEqual("Sorry, your username ...");