Selenium Webdriver没有基于文本、xpath或ID点击菜单项

Selenium Webdriver not clicking menuitem based on text, xpath or ID

本文关键字:xpath ID 菜单项 文本 Webdriver 于文本 Selenium      更新时间:2023-09-26

我在sharepoint的一个页面中有一些html,看起来像这样…

<span style="display:none">
<menu type='ServerMenu' id="zz28_RptControls" largeIconMode="true">
<ie:menuitem id="zz29_AddColumn" type="option" iconSrc="/_layouts/images/MenuAddColumn.gif" onMenuClick="window.location = '/SiteDirectory/investment/AE/5539/_layouts/fldNew.aspx?List=%7B49B0DF27%2D5F75%2D4721%2DA81C%2DF8FA9F5CB9DF%7D&amp;Source=http%3A%2F%2Fdv%2Dsharepoint%2Ecollercapital%2Ecom%2FSiteDirectory%2Finvestment%2FAE%2F5539%2FEmails%2FForms%2FAllItems%2Easpx';" text="Create Column" description="Add a column to store additional information about each item." menuGroupId="100"></ie:menuitem>
<ie:menuitem id="zz30_AddView" type="option" iconSrc="/_layouts/images/MenuAddView.gif" onMenuClick="window.location = '/SiteDirectory/investment/AE/5539/_layouts/ViewType.aspx?List=%7B49B0DF27%2D5F75%2D4721%2DA81C%2DF8FA9F5CB9DF%7D&amp;Source=http%3A%2F%2Fdv%2Dsharepoint%2Ecollercapital%2Ecom%2FSiteDirectory%2Finvestment%2FAE%2F5539%2FEmails%2FForms%2FAllItems%2Easpx';" text="Create View" description="Create a view to select columns, filters, and other display settings." menuGroupId="100"></ie:menuitem>
<ie:menuitem id="zz31_ListSettings" type="option" iconSrc="/_layouts/images/MenuListSettings.gif" onMenuClick="window.location = '/SiteDirectory/investment/AE/5539/_layouts/listedit.aspx?List=%7B49B0DF27%2D5F75%2D4721%2DA81C%2DF8FA9F5CB9DF%7D';" text="Document Library Settings" description="Manage settings such as permissions, columns, views, and policy." menuGroupId="200">
</ie:menuitem></menu></span><span title="Open Menu">
<div id="zz32_ListSettingsMenu_t" class="ms-menubuttoninactivehover" onmouseover="MMU_PopMenuIfShowing(this);MMU_EcbTableMouseOverOut(this, true)" hoverActive="ms-menubuttonactivehover" hoverInactive="ms-menubuttoninactivehover" onclick=" MMU_Open(byid('zz28_RptControls'), MMU_GetMenuFromClientId('zz32_ListSettingsMenu'),event,false, null, 0);" foa="MMU_GetMenuFromClientId('zz32_ListSettingsMenu')" oncontextmenu="this.click(); return false;" nowrap="nowrap"><a id="zz32_ListSettingsMenu" accesskey="I" href="#" onclick="javascript:return false;" style="cursor:hand;white-space:nowrap;" onfocus="MMU_EcbLinkOnFocusBlur(byid('zz28_RptControls'), this, true);" onkeydown="MMU_EcbLinkOnKeyDown(byid('zz28_RptControls'), MMU_GetMenuFromClientId('zz32_ListSettingsMenu'), event);" onclick=" MMU_Open(byid('zz28_RptControls'), MMU_GetMenuFromClientId('zz32_ListSettingsMenu'),event,false, null, 0);" oncontextmenu="this.click(); return false;" menuTokenValues="MENUCLIENTID=zz32_ListSettingsMenu,TEMPLATECLIENTID=zz28_RptControls" serverclientid="zz32_ListSettingsMenu">Settings<img src="/_layouts/images/blank.gif" border="0" alt="Use SHIFT+ENTER to open the menu (new window)."/></a><img align="absbottom" src="/_layouts/images/menudark.gif" alt="" />
</div></span>
        </td>

有一个"设置"按钮(ID为zz32_ListSettingsMenu_t),当点击时,打开一个小下拉框,其中有几个菜单项对象。

我可以单击设置对象打开下拉菜单没有问题,但当我试图单击菜单项显示什么都没有发生。我已经在等待,我已经尝试了//menuitem[contains(text(),'Document Library Settings']的xpath或zz31_ListSettings的ID值,甚至Document Library SettingsLINKTEXT,但似乎没有任何作用,硒只是没有找到它点击它。

有人有什么想法吗我脑子一片空白

显然,通常的方法是首选的,但是如果遇到困难,有时可以通过手动发送击键来解决这个问题。我通常使用sendKeys,像这样:

element.click(); //click on menu to expand it
element.sendKeys( Keys.DOWN ); // key donw once
element.sendKeys( Keys.ENTER); //to select the item