我正在使用Protractor测试Web应用程序项目。我写的几个测试用例运行正常,但是当我尝试计算父div元素中存在的div元素的数量时,我遇到了困难。我的div的结构如下所示
<div class="page-kontact-main">
<div class="buttons contact_page">
<a href="http://mysite.se/om-oss/" class="btn btn-default button">Om oss</a>
<a href="http://mysite.se/offert-3/" class="btn btn-default button">Offert</a>
<a href="http://mysite.se/tjanster/" class="btn btn-default button">Våra Tjänster</a>
</div>
<div class="row kontact-title">
<h2>Våra medarbetare</h2>
<p>
Test desc <span class="s47jd228h2" id="s47jd228h2_5">med</span> passion och engagemang för it & system. Skicka in din ansöka
</p>
<p> </p>
</div>
<div class="row clearfix">
<div class="col206"></div>
<div class="col206"></div>
<div class="col206"></div>
<div class="col206"></div>
<div class="col206"> </div>
<div class="col206"></div>
<div class="col206"></div>
<div class="col206"> </div>
</div>
</div>
我已经编写了如下所示的测试用例,但它没有运行错误,预计未定义为21。
it('Getting the count of contact names ', function() {
driver.get("http://mysite.se/kontakt/");
var element = driver.findElement(protractor.By.css('.clearfix .col206'));
expect(element.length).toEqual(21);
});
由于 Utpal
答案 0 :(得分:23)
您应该使用 element.all 和 count()而不是长度:
it('Getting the count of contact names ', function() {
driver.get("http://mysite.se/kontakt/");
var elements = element.all(protractor.By.css('.clearfix .col206'));
expect(elements.count()).toEqual(21);
});
答案 1 :(得分:5)
$
和$$
相当于element.all
和by.css
,因此您可以使用以下代码
it('Getting the count of contact names ', function() {
driver.get("http://mysite.se/kontakt/");
var elements = $$('.clearfix .col206'));
expect(elements.count()).toEqual(21);
});