【问题标题】:How to print the value of an element?如何打印元素的值?
【发布时间】:2015-04-10 00:53:36
【问题描述】:

我想将元素的文本值打印到控制台以进行调试。我有:

var result = element(by.model('vm.firstName')).getAttribute('value');
console.log('first name is: ' + result.getInnerHtml() + result.getOuterHtml() + result.getText() + "" + result.getId() + Object.keys(result));
expect(result).toBe('Colin');

期望通过了。日志没有按我的意愿给我“Colin”:

名字是:[object Object][object Object][object Object][object Object]ptor_,parentElementArrayFinder,then,elementArrayFinder_,click,sendKeys,getTagName,getCssValue,getAttribute,getText,getSize,getLocation,isEnabled,isSelected ,提交,清除,isDisplayed,getOuterHtml,getInnerHtml,getId,getRawId

我怎样才能显示名称而不是 [object Object]?

【问题讨论】:

  • 您是否尝试过仅记录结果对象,仅此而已,大多数现代浏览器会将其识别为对象,并允许您在日志窗口中探索该对象。
  • @Delta - 是的,抱歉,这不是问题所在。我试过了,得到[object Object]
  • 看起来 getAttribute('value') 将返回一个字符串,然后您正在调用。字符串文字上的 result.getInnerHtml()。但这与您的 [object object] 结果不一致。

标签: angularjs protractor


【解决方案1】:

当您尝试记录结果时,它仍然是一个未解决的承诺。请尝试以下操作:

var result = element(by.model('vm.firstName')).getAttribute('value');
//the .then statement will only execute once the promise has been resolved.
result.then(function(foo){
    console.log('first name is: ' + foo.getInnerHtml() + foo.getOuterHtml() + result.getText() + "" + foo.getId() + Object.keys(foo));
});

【讨论】:

    猜你喜欢
    • 2016-04-26
    • 2022-11-24
    • 2019-07-22
    • 1970-01-01
    • 2020-05-10
    • 2013-03-18
    • 2018-07-30
    • 2017-10-10
    相关资源
    最近更新 更多