角度量角器e2e测试多个下拉列表

时间:2014-12-15 08:17:18

标签: angularjs protractor angularjs-e2e

我在标题部分中有多个具有相同类名的下拉列表。如何为多个下拉列表编写量角器e2e测试用例。

这是我的HTML代码段:

<ul class="nav navbar-nav">
    <li class="dropdown">
          <a class="dropdown-toggle" data-toggle="dropdown">Patient Flow <span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="#/patientDashboard/appointments">Patient Portal</a></li>
            <li><a href="#/dashboard2/stations/1/patients">Patient Queue</a></li>
            <li><a href="#/dashboard4/appointments">Visitor Dashboard</a></li>
            <!--  <li><a href="#/patientDashboard/appointments">Patient List View</a></li> -->
          </ul>
    </li>
    <li><a href="#/dashboard3/encounters">OR Flow</a></li>
    <li class="dropdown">
          <a class="dropdown-toggle" data-toggle="dropdown">Track Assets <span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="#/listViewTable/assets">Asset List View</a></li>
            <li><a href="#/dashboard5/assets">Asset Map View</a></li>
          </ul>
    </li>
    <li class="dropdown">
          <a class="dropdown-toggle" data-toggle="dropdown">System Setup <span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="#/listViewTable/patients">Patients</a></li>
            <li><a href="#/listViewTable/appointments">Appointments</a></li>
          </ul>
    </li>

    <li><a href="#/dashboard10/encounters/1">Reports</a></li>
  </ul>

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用:

var dropdown = element.all(by.css('.dropdown')).get(N);
var toggle = dropdown.element(by.css('.dropdown-toggle'));
toggle.click();
var list = dropdown.all(by.css('.dropdown-menu li'));
expect(list.first().getText()).toEqual('Patient Portal');

获取第N个下拉列表(Doc),并测试它的第一个元素......

然后对于这种非常复杂的页面,我建议使用Page objects

[编辑:另外,我不知道这是不是很好的做法,但是如果你不想坚持特定的订单,我会在每个下拉列表中添加一个独特的类(或ID)]