使用Intellij JavaScript调试器在IntelliJ中调试量角器测试用例

时间:2014-12-29 23:50:13

标签: javascript debugging selenium intellij-idea protractor

我有一个关于在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控制台的结果。 enter image description here

1 个答案:

答案 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注入的客户端脚本命令,请参阅:

另见: