如何使用量角器点击溢出菜单选项
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(),然后尝试点击。
应用程序中正在使用溢出菜单: 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(),然后尝试点击。