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
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);
});
$
および$$
は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);
});