2017-06-04 6 views
0

私はnightwatch.jsを使用していくつかのエンドツーエンドのテストを行っています。今私は、特定の検索結果が私の期待と一致するかどうかを確認したい。 サンプルの一つサンプルサブカテゴリサンプル三:3件の結果があることを意味しnightwatch.jsで検索結果をテストする方法

<div id="results" role="list" class="ui list"> 
    <div role="listitem" class="item"> 
     <span><strong>Samp</strong>le One</span> 
    </div> 
    <div role="listitem" class="item multiple pointer "> 
     <div class="ui accordion"> 
      <div class="title pointer"> 
       <span><strong>Samp</strong>le Subcategory</span> 
      </div> 
      <div class="content pointer"> 
       <div role="list" class="ui list"> 
        <div role="listitem" class="item pointer">Sub 1</div> 
        <div role="listitem" class="item pointer">Sub 2</div> 
       </div> 
      </div> 
     </div> 
    </div> 
    <div role="listitem" class="item pointer"> 
     <span><strong>Samp</strong>le Three</span> 
    </div> 
</div> 

:結果は次のようになります。もう一つは、私がgetElementsのようなものを見つけて、数と結果の要素のそれぞれの値をチェックしませんでしたサブ1サブ2

をsubresultsすることもあります。だから私はgetTextを使用しようとしましたが、私はそれは間違った方法だと思います...

this.searchTest = function (browser) { 
    browser.getText("#results", function(result) { 
    // ??? 
    }); 
}; 

答えて

0

getElementsは確かに、存在しません。しかし代わりにelementsを使用することができます!

module.exports = { 
    'getElements': function (browser) { 

    function getInfo(elements) { 
     console.log('Number of results: ' + elements.value.length); 

     elements.value.forEach(function (element) { 
     browser.elementIdText(element.ELEMENT, function (res) { 
      console.log('RESULT ' + element.ELEMENT + '\n', res.value); 
     }); 
     }); 
    } 

    browser 
     .url('http://www.website.com/') // <--- Don't forget to change this! 
     .waitForElementPresent('body', 1000) 
     .elements('css selector', '#results > div[role="listitem"]', getInfo) 
     .end(); 

    } 
}; 

次のスクリプトは、あなたの結果の数と各結果のテキストコンテンツを提供します

関連する問題