我有一个关于在Intellij Idea 14中调试Protractor脚本的问题。 我根据这个doc设置了Dubuger配置:protractor / docs / debugging.md并尝试通过对console.log设置断点来检查我的代码来检查lblInvalidLoginMsg对象的值:
it('should do something', function() {
txtEmail.sendKeys("aaa@asd.com");
txtPassword.sendKeys("aaaaa");
btnSignIn.click();
lblInvalidLoginMsg.getAttribute('value').then(function(){
console.log("hello");
})
expect(lblInvalidLoginMsg.getAttribute('value')).toEqual('Blah Blah');
});
问题是遇到断点时调试器没有显示任何值。调试器手表只显示我可以对getText()
,getID()
等对象应用的可用方法列表,但没有预期的值。
控制台输出提供如下内容:
lblInvalidLoginMsg.getId()
ElementFinder
lblInvalidLoginMsg.isElementPresent();
webdriver.promise.Promise
与#34;评估"相同特征。有什么我想念的吗?
更新:使用我的脚本在调试模式下添加了屏幕截图+调试配置+来自Protractor控制台的结果。
答案 0 :(得分:1)
量角器严重依赖于承诺的概念。要查看元素的文本或属性的实际值,您需要使用then()
解决它们。例如:
element(by.id('#myId')).then(function(elm) {
elm.getText().then(function (text) {
console.log(text); // put a breakpoint here
});
});
或:
lblInvalidLoginMsg.getAttribute('value').then(function(value) {
console.log(value); // value here would contain an actual attribute value
});
此外,当暂停protractor
进行调试时,您可以使用浏览器开发人员工具并调用protractor
注入的客户端脚本命令,请参阅:
另见: