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

Nightwatch.js - Getting title of element and compare it later

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

在测试中,点击 table 列表中的特定元素应该会出现 select 一篇文章。然后文章被加载。

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

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

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()
  }
}

如果我理解你的问题,我认为你需要使用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