如何获取量角器中根 div 元素内存在的子 div 元素的数量

Posted

技术标签:

【中文标题】如何获取量角器中根 div 元素内存在的子 div 元素的数量【英文标题】:How to get the count of the number of child div element present inside a root div element in Protractor 【发布时间】:2014-03-27 12:17:45 【问题描述】:

我正在使用 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);

    );

谢谢 乌特帕尔

【问题讨论】:

你好乌特帕尔。请提供更多的html。这个 html 的问题是可能有其他元素的类名明确修复。您也可以使用 findelements 方法。如果您可以从您提供的 html 的上部提供更多 html,我可以提供代码。 @Vinay 我已经提供了更多的 html 代码,请查看并提出一些出路。 这对您有帮助吗:***.com/questions/21685161/… ?我在beforeEach 中使用了element.all() @glepretre 我正在测试的部分是非角部分,所以 element.all 不起作用 "element 是一个辅助函数,用于查找您正在测试的页面上的元素并与之交互" - 来自Protractor - Getting Started。它是一个全局变量,您应该可以使用它来测试非角度部分/页面。 【参考方案1】:

您应该使用 element.allcount() 而不是 length

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);
);

【讨论】:

【参考方案2】:

$$$等价于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);
);

【讨论】:

以上是关于如何获取量角器中根 div 元素内存在的子 div 元素的数量的主要内容,如果未能解决你的问题,请参考以下文章

量角器 - 其他元素将收到点击

Jquery如何选取元素及其所有子元素?

在jQuery中如何选择某DIV的子元素?

获取在 div 元素中被选中的子元素 [重复]

NoSuchElementError:没有这样的元素:无法找到量角器的元素

仅获取单击的 div 元素的子元素