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

相關問題