Javascript Selenium Webdriver未基于文本、xpath或ID单击菜单项

Javascript Selenium Webdriver未基于文本、xpath或ID单击菜单项,javascript,selenium,xpath,Javascript,Selenium,Xpath,我在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=

我在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\u ListSettingsMenu\t),单击该按钮时,会打开一个包含多个菜单项对象的小下拉框

我可以单击设置对象打开下拉列表,但在Selenium中没有问题,但是当我尝试单击菜单项时,显示没有发生任何事情。我尝试了xpath的
//menuitem[contains(text(),'Document Library Settings']
或ID值的
zz31_ListSettings
甚至
文档库设置的
LINKTEXT
,但似乎没有任何效果,Selenium只是没有找到它来点击它


任何人有什么想法吗?我画的是空白…

显然,通常的方法是首选的,但是如果你被卡住了,你有时可以用手动发送的按键来解决它。我通常使用sendKeys,如下所示:

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

我本来希望避免使用老式的“下,下,左,左,按回车键”爵士乐,但在玩了更长时间后,我想你可能是对的……:(如果我正在录制测试视频,我有时会这样做,我想以后再看。这样做,我可以创建一个看起来更像人类在做的测试。