【问题标题】:Protractor clicking on dropdown toggle量角器单击下拉切换
【发布时间】:2015-10-28 17:35:13
【问题描述】:

我正在使用 Protractor 在我的 Angular 应用程序上运行 E2E。我遇到了一个非常奇怪的问题。 我正在使用具有一些选项的 Bootstrap 下拉菜单。我需要单击其中一个选项。 我提到了这个答案,它试图做类似的事情,但对我不起作用: Protractor - how to select heavily nested dropdown element?

我的结构如下:

<div id="fc-more-btn" class="btn-group btn-group-sm dropdown" role="group" dropdown="" is-open="ctrl.fcDropdown">
    <button type="button" class="btn btn-default dropdown-toggle filetree-btn" tooltip="More Actions" tooltip-trigger="mouseenter" tooltip-placement="bottom" ng-disabled="ctrl.sd.noSelections" dropdown-toggle="" aria-haspopup="true" aria-expanded="false">
      <span class="fa fa-caret-down"></span>
    </button>
    <ul class="dropdown-menu filetree-dropdown" role="menu">
      <li>
        <a class="btn fc-dropdown-link" ng-disabled="ctrl.sd.noSelections||(ctrl.sd.multipleSelections||!ctrl.sd.dirSelected)" ng-click="ctrl.createNewFile()">
          New File
        </a>
      </li>
      <li>
        <a class="btn fc-dropdown-link" ng-disabled="ctrl.sd.noSelections||(ctrl.sd.multipleSelections||!ctrl.sd.dirSelected)" ng-click="ctrl.createNewDir()">
          New Folder
        </a>
      </li>
      <li>
        <a class="btn fc-dropdown-link" ng-disabled="ctrl.sd.noSelections" ng-click="ctrl.copyFiles()">
          Copy
        </a>
      </li>
      <li>
        <a class="btn fc-dropdown-link" ng-disabled="ctrl.clipboardEmpty||ctrl.sd.noSelections||(ctrl.sd.multipleSelections||!ctrl.sd.dirSelected)" ng-click="ctrl.pasteFiles()" disabled="disabled">
          Paste
        </a>
      </li>
      <li>
        <a class="btn fc-dropdown-link" ng-disabled="ctrl.sd.noSelections||ctrl.sd.multipleSelections" ng-click="ctrl.renameFile()">
          Rename
        </a>
      </li>
    </ul>
  </div>

在我的测试中,我试图点击重命名链接。

我写的代码是:

element(by.css('.dropdown-toggle')).click().then(function(){
  //click on rename
});

在运行测试时,下拉切换按钮上方有一个小闪烁,似乎该按钮已被单击。但是,未显示应显示的下拉菜单。

因此,我无法模拟点击重命名。我是不是做错了什么?

【问题讨论】:

    标签: javascript angularjs protractor angularjs-e2e


    【解决方案1】:

    尝试通过 cssContainingText 进行选择,对下拉菜单和嵌套元素很有帮助!

    element(by.cssContainingText('option', 'Rename')).click();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多