如何获取Protractor中根div元素内的子div元素数量的计数

时间:2014-02-25 10:30:43

标签: angularjs selenium selenium-webdriver css-selectors protractor

我正在使用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 &amp; system.  &nbsp;Skicka in din ansöka
    </p>
    <p>&nbsp;</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

2 个答案:

答案 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.allby.css,因此您可以使用以下代码

it('Getting the count of contact names ', function() {
    driver.get("http://mysite.se/kontakt/");
    var elements = $$('.clearfix .col206'));
    expect(elements.count()).toEqual(21);
});