考虑下面两个DOM结构元素
<li
class="facet sector multiselect selected"
data-bind="click: function(data, e) { $parent.sectors.setParentSector.call($parent, data, e); }, attr: { 'class' : 'facet sector multiselect' + (Selected() ? ' selected' : '') + (Disabled() ? ' disabled' : '')}"
>
<a
href="***parentsector=financial-services"
data-bind="text: SectorName(), attr: { href: Url() }"
>Financial Services</a
>
<span class="count" data-bind="text: '(' + JobCount() + ')'">(62)</span>
</li>
<div class="col-md-12">
<div class="page-counter">1 - 25 of 62 jobs</div>
</div>
我的要求是验证来自第一个元素的count(62)
等于页面计数器元素(1 - 25 of 62)
中出现的作业总数。
我使用了这个解决方案,但它没有工作:
it("Verify job count of filter applied should be equal to total jobs appear in webpage ", () => {
let count;
cy.searchKeyword(fdata); //ignore this code as it is not relevant to this context.
cy.get(":nth-child(7) > .count").click();
cy.get(".selected > .count").then(($el) => {
count = $el.text;
cy.log(count);
});
cy.get(":nth-child(1) > .row-top > .row > .col-md-12 > .page-counter")
.contains("${count}")
.should("be.true");
});
让我知道我的逻辑哪里不正确
1条答案
按热度按时间ujv3wf0j1#
看起来不错,除了几件事
.contains("${count}")
看起来像是你在尝试使用字符串模板,但是需要在它周围加上反引号,所以它会在页面计数器中查找$
和{
和}
。你可以只使用.contains(count)
,但是哪个数字是正确的比较-25
还是62
?count
变量的值仍然是undefined
,因为你过早地使用了它。要么在最后一条语句周围添加另一个.then()
,要么将计数传递到链的下面,而不是使用外部变量。这里有一些代码,可能会更好
count变量的延迟使用
向下传递计数