0

E2EテストでNightwatch.jsを使用しています。Nightwatch.js - 要素のタイトルを取得して後で比較する

このテストでは、テーブルリストの特定の要素をクリックして記事を選択する必要があります。その後、記事が読み込まれます。

タイトルを比較して正しい記事が読み込まれているかどうかを確認したいと思います。

選択した要素のテキストを取得するにはどうすればよいですか?私のコードでは、要素はちょうどクリックされます。 2番目の部分では、このタイトルを比較する必要があります。以下の私のコードでは、それだけでハードコーディングされています

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

関連する問題