Nightwatch.js - 获取元素的标题并稍后进行比较

时间:2017-06-14 12:30:25

标签: javascript testing selenium-webdriver nightwatch.js e2e-testing

我正在使用Nightwatch.js进行E2E测试。

在测试中,应该单击表格列表中的特定元素来选择文章。然后文章被加载。

现在我想通过比较标题来检查是否已加载了正确的文章。

如何获取所选元素的文本?在我的代码中,只需单击该元素。在第二部分中,应该比较这个标题。在下面的代码中,它只是硬编码:

module.exports = {
  'article': function(browser) {
    browser
      .click('#list tbody tr:first-child .selectable')
      .waitForElementVisible('#article-wrapper', 10000)

    browser.expect.element('h1').text.to.equal('specific title')

    browser.end()
  }
}

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,我认为你需要使用getText方法。我不知道您的HTML代码的结构,但这个最小的工作示例肯定会帮助您:

HTML index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Nightwatch</title>
</head>
<body>
  <h1>Foo</h1>
  <table>
    <tr>
      <th>Header 1</th>
      <th>Header 2</th>
    </tr>
    <tr>
      <td>Foo</td>
      <td>Bar</td>
    </tr>
  </table>
</body>
</html>

JavaScript title.js

module.exports = {
  'Title': function (browser) {
    browser
      .url('http://localhost:8000/index.html') // Change this if needed
      .waitForElementPresent('body', 1000);

    browser.getText('table tr:last-child td:first-child', function (title) {
      browser.expect.element('h1').text.to.equal(title.value);
    });

    browser.end();
  }
};

<强>命令

nightwatch -t tests/title.js