0

我正在使用Nightwatch.js进行E2E测试。Nightwatch.js - 获取元素的标题并稍后进行比较

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

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

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

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

回答

0

如果我明白你的问题很好,我认为你需要使用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> 

的JavaScripttitle.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 
+0

我认为你有点误会:首先我需要获取表格元素的文本。然后,守夜人正在点击它,然后路由到另一个页面。此页面的标题应与从表格中提取的文本进行比较。 – user3142695

+0

这是我的理解,除了我认为你使用的是AJAX。但是,从我的角度来看,使用'getText'这个基本示例仍然足以解决您的问题。什么阻止了你? – Badacadabra

相关问题