如何使用量角器点击溢出菜单选项

How can get the overflow menu option to be clicked using protractor

应用程序中正在使用溢出菜单: OverflowMenu 我正在使用 Protractor 获取菜单及其选项,我可以单击并打开溢出菜单,但无法单击溢出菜单中的选项。

溢出菜单和选项的HTML代码:

<td class="bx--table-column-menu">
<div data-overflow-menu="" tabindex="0" aria-label="Overflow menu description" class="bx--overflow-menu" carbon-overflow-menu="" aria-expanded="false">
<svg class="bx--overflow-menu__icon" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="8" cy="3" r="1"></circle>
<circle cx="8" cy="8" r="1"></circle>
<circle cx="8" cy="13" r="1"></circle>
</svg>
<ul class="bx--overflow-menu-options bx--overflow-menu--flip" data-floating-menu-direction="bottom">
<li class="bx--overflow-menu-options__option bx--table-row--menu-option">
        <button class="bx--overflow-menu-options__btn" ng-click="vm.dealSelected(data)">                                       <div class="bx--overflow-menu-options__option-content">
            <span>Open Opportunity</span>
           </div>
        </button>
    </li>
    <li class="bx--overflow-menu-options__option bx--table-row--menu-option ng-scope" ng-if="(data.accesslist[0].authtype | lowercase ) == 'admin'">
        <button class="bx--overflow-menu-options__btn" ng-click="vm.dealSelectedAction(data, 'app.modify-project')">
               <div class="bx--overflow-menu-options__option-content">
                <span>Modify Opportunity</span>
           </div>
        </button>
</li><!-- end ngIf: (data.accesslist[0].authtype | lowercase ) == 'admin' -->

...

在 Web Developer -> Inspector 视图中,我注意到标签 "ul" 下面的代码是灰色的。

我通过 Firefox 的附加组件 TX 验证了菜单选项的 XPath,XPath 是:

//td[@class='bx--table-column-menu']/div/ul/li/button/div/span[contains(text(),'Open Opportunity')]

执行结果,成功得到Count: 1

我正在尝试使用以下代码来抓取并单击溢出菜单中的选项:

element(by.xpath("//td[@class='bx--table-column-menu']/div/ul/li/button/div/span[contains(text(),'Open Opportunity')]")).click();

我收到错误消息:

No element found using locator: By(xpath, //td[@class='bx--table-column-menu']/div/ul/li/button/div/span[contains(text(),'Open Opportunity')])

如果 li 项目是灰色的,则表示该元素未显示。因此点击不起作用。 打开溢出菜单后等到 element.isDiplayed(),然后尝试点击。