我在让我的守夜人测试从网页获取数据并将其打印到我的控制台时遇到了一些问题。如果有人能指出我正确的方向,我将非常感激。
每次我尝试将数据获取到我的控制台日志时,它只返回 [object Object]。我对测试自动化还很陌生,无法从谷歌搜索中理解这一点。代码如下(测试站点为google frontpage:
module.exports = {
tags: ['google'],
'Demo test Google' : function (client) {
client
.url('http://google.com')
.pause(500);
var msg = "---> : ";
client.expect.element('body').to.be.present;
client.getText("#gbw > div > div > div.gb_7d.gb_R.gb_le.gb_ee > div:nth-child(1) > a", function(result) {
client.expect.element("#gbw > div > div > div.gb_7d.gb_R.gb_le.gb_ee > div:nth-child(1) > a").text.to.equal("Gmail");
console.log(msg.toString()+result);
});
client.getValue("#tsf > div.tsf-p > div.jsb > center > input[type='submit']:nth-child(1)", function(result) {
client.expect.element("#tsf > div.tsf-p > div.jsb > center > input[type='submit']:nth-child(1)").to.have.value.that.equals("Sök på Google");
console.log(msg+result);
});
client.end();
}
};
最佳答案
我最近遇到了这个问题,我解决这个问题的方法是使用“textContent”来捕获元素之间的字符串。
在这个例子中:
<div data-v-407a767e="" class="alert alert-success alert-styled-left alert-bordered text-center">
"Success! Check your email for the password reset link. "
<br data...>
<a data-v-407a767e="" class="alert-link">Go back to login.</a>
</div>
我使用以下方法检索字符串:
client.getAttribute('selector', 'textContent', function(result){
console.log("Value: ", result.value);
});
你可以看看这个 link关于使用 textContent 属性。
关于javascript - NightwatchJs 在控制台、属性和值中打印元素文本时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33669388/