如何通过 nightwatch.js 测试搜索结果
How to test search result via nightwatch.js
我正在使用 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>
这意味着有三个结果:样本一、样本子类别和样本三 .第二个也有子结果 Sub 1 和 Sub 2
我没有找到类似 getElements
的内容,并检查了结果元素的数量和每个值。所以我尝试使用 getText
但我认为这是错误的方式...
this.searchTest = function (browser) {
browser.getText("#results", function(result) {
// ???
});
};
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();
}
};
我正在使用 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>
这意味着有三个结果:样本一、样本子类别和样本三 .第二个也有子结果 Sub 1 和 Sub 2
我没有找到类似 getElements
的内容,并检查了结果元素的数量和每个值。所以我尝试使用 getText
但我认为这是错误的方式...
this.searchTest = function (browser) {
browser.getText("#results", function(result) {
// ???
});
};
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();
}
};