Транспортир нажатием на выпадающий переключатель

0

Я запускаю E2E в своем угловом приложении с помощью Protractor. Я сталкиваюсь с очень странной проблемой. Я использую Dropstrap Dropdown, у которого есть некоторые опции. Мне нужно нажать на один из вариантов. Я ссылался на этот ответ, который пытается сделать что-то подобное, но не работает для меня: Транспортир - как выбрать сильно вложенный элемент выпадающего списка?

Моя структура выглядит так:

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

При запуске теста на переключателе выпадающего изображения появляется небольшое мерцание, и кажется, что нажата кнопка. Однако выпадающее меню, которое должно отображаться, не отображается.

В результате я не смогу имитировать щелчок, чтобы переименовать. Я делаю что-то неправильно?

Теги:
protractor
angularjs-e2e

1 ответ

0

Попробуйте выбрать cssContainingText, очень полезно при выпадающих меню и вложенных элементах!

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню