web-dev-qa-db-ja.com

分度器のルートdiv要素内に存在する子div要素の数を取得する方法

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

14
Utpal

lengthの代わりに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);
});
24
Bastien Caudan

$および$$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);
});
5
Andrii Malykhin