NightwatchJs获取在控制台,属性和值中打印元素文本的问题

Eri*_*mar 2 javascript selenium nightwatch.js

我在进行夜视测试以从网页获取数据并将其打印到控制台时遇到了一些麻烦。如果有人能指出正确的方向,我将非常感激。

每次我尝试将数据获取到控制台日志时,它仅返回[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();
}
};
Run Code Online (Sandbox Code Playgroud)

小智 5

我最近才遇到此问题,而解决此问题的方法是使用“ 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>
Run Code Online (Sandbox Code Playgroud)

我使用以下方法检索字符串:

client.getAttribute('selector', 'textContent', function(result){
        console.log("Value: ", result.value);
    });
Run Code Online (Sandbox Code Playgroud)

您可以使用textContent属性查看此链接