Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用IntelliJ JavaScript调试器在IntelliJ中调试量角器测试用例_Javascript_Debugging_Selenium_Intellij Idea_Protractor - Fatal编程技术网

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

使用IntelliJ JavaScript调试器在IntelliJ中调试量角器测试用例,javascript,debugging,selenium,intellij-idea,protractor,Javascript,Debugging,Selenium,Intellij Idea,Protractor,我有一个关于调试Intellij Idea 14中的量角器脚本的问题。 我确实根据以下文档设置了Dubuger配置:dragrator/docs/debuging.md,并尝试通过在console.log上放置断点来调试代码,以检查lblInvalidLoginMsg对象的值: it('should do something', function() { txtEmail.sendKeys("aaa@asd.com"); txtPassword.sendKeys("aaaaa");

我有一个关于调试Intellij Idea 14中的量角器脚本的问题。 我确实根据以下文档设置了Dubuger配置:dragrator/docs/debuging.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');
});
问题是调试器在遇到断点时不显示任何值。Debugger watch只显示了可以对对象应用的可用方法列表,如
getText()
getID()
等,但没有预期的值

控制台输出提供如下内容:

‌‌lblInvalidLoginMsg.getId()
‌ElementFinder
‌‌lblInvalidLoginMsg.isElementPresent();
‌webdriver.promise.Promise
“评估”功能也是如此。我有什么遗漏吗

更新:添加了屏幕截图,其中我的脚本处于调试模式+调试配置+来自量角器控制台的结果。
量角器严重依赖于承诺的概念。要查看元素文本或属性的实际值,需要使用
then()
解析它们。例如:

element(by.id('#myId')).then(function(elm) {
    elm.getText().then(function (text) {
        console.log(text);  // put a breakpoint here
    });  
});
或:

另外,当暂停
量角器进行调试时,您可以使用浏览器开发工具调用
量角器的注入客户端脚本命令,请参见:

另见:


嗨,亚历克斯,谢谢你的建议。我能够让Gragrator elementExplorer.js正常工作,但在IntelliJ Idea中调试对我来说仍然是个谜。我确实根据您的建议在then()语句中设置了断点,但和以前一样,只得到了可用元素方法的列表。我用调试模式+调试器配置+来自量角器elementExplorer控制台的结果的脚本截图更新了我的原始帖子。@Vlad这实际上是正确的。您将获得一个具有可用方法的元素实例。他们都会回报一个承诺。例如,如果要获取
getText()
的值,则需要编写
elm.getText().then(函数(文本){console.log(文本);})。。
lblInvalidLoginMsg.getAttribute('value').then(function(value) {
    console.log(value);  // value here would contain an actual attribute value
});