使用IntelliJ JavaScript调试器在IntelliJ中调试量角器测试用例
我有一个关于调试Intellij Idea 14中的量角器脚本的问题。 我确实根据以下文档设置了Dubuger配置:dragrator/docs/debuging.md,并尝试通过在console.log上放置断点来调试代码,以检查lblInvalidLoginMsg对象的值:使用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");
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
});