无法在量角器中使用getText()和getAttribute()验证文本值

时间:2015-09-11 11:26:34

标签: javascript jasmine protractor

当我使用下面的代码时,它应该从网页获取数值,但我得到的值为[object][object]

以下是我正在使用的代码。

var resultText = element(by.id('output')).getAttribute();
console.log("Result text:  " + resultText);

我也尝试过以下方式,但是我无法从网页获取正确的值。

element(by.id('output')).each(function (element) {              
    var resultText = element.getAttribute('value').then(function(attr){
        expect(typeof attr).toBe("string");
    });
});

你能帮助我获得元素的价值吗?感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

getAttribute()getText()始终返回承诺。因此,您应该使用它返回的promise来获取元素的值,然后控制台记录它或在expect语句中使用它。这是怎么做的 -

element(by.id('output')).getAttribute('value').then(function(resultText){
    console.log(resultText);
    expect(typeof resultText).toBe("string");
});

如果有更多元素的标识为output,请使用.each()方法检索每个元素的值。

element.all(by.id('output')).each(function (ele) {
    ele.getAttribute('value').then(function(attr){
        expect(typeof attr).toBe("string");
        console.log(attr); //print the value of returned by getAttribute
    });
});

getText()也以类似的方式工作。这是一个例子 -

element(by.id('output')).getText().then(function(text){
    console.log(text); //print the text that output element holds
});

有关getAttribute()getText()的更多信息。希望这会有所帮助。