2014-05-06 45 views
0

我有一個頁面的HTML一些在SharePoint中,看起來是這樣的...硒的webdriver不點擊菜單項基於文本,XPath或ID

<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> 

有一個「設置」按鈕(帶當點擊時,打開一個有幾個菜單項對象的小下拉框。

我可以點擊設置對象來打開Selenium中的沒有問題的下拉菜單,但是當我嘗試點擊菜單項時顯示沒有任何反應。我已經在等待我已經嘗試了//menuitem[contains(text(),'Document Library Settings']的xpath或ID值zz31_ListSettings甚至LINKTEXTDocument Library Settings但似乎沒有工作,Selenium只是沒有發現它點擊它。

任何人有任何想法,我一片空白......

回答

0

顯然,通常的方式是首選,但如果你被卡住,有時你可以解決它與手動發送鍵擊。我通常做的SendKeys,像這樣:

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

我希望避免做舊「下,下,左,左,按回車鍵」爵士,但我打關於它甚至更長的時間後,你的思維'可能是對的...... :( – MorkPork

+0

我這樣做有時如果我正在錄製我的測試視頻,我想稍後再看它,這樣做,我可以創建一個看起來更像人類的測試正在這樣做。 – djangofan