2017-06-28 25 views
-2

我有一個單擊下拉菜單並在Selenium中選擇一個選項的問題。 我試過使用.click()方法,但它沒有奏效。JavaScript Drop&down菜單selenium Java沒有任何價值或ID

我是一個新手與硒和尋找解決方案,但我還沒有找到任何適合的作品。

我將代碼粘貼在按鈕和JavaScript中的菜單和兩個屏幕截圖過程

BUTTON

<div id="wfm-header-config" class="header-cell jqx-widget jqx-widget-officeWFM2 jqx-menu jqx-menu-officeWFM2 jqx-rtl jqx-rtl-officeWFM2 jqx-widget-header jqx-widget-header-officeWFM2 jqx-menu-horizontal jqx-menu-horizontal-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2 dis_jqxMenu" role="menubar" style="outline: medium none; height: auto; background-color: transparent; background-image: none; border: medium none;" tabindex="0"> 
<ul class="jqx-menu-ul"> 
<li id="-1" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item-top jqx-menu-item-top-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" style="float: right; background-color: transparent; background-image: none; padding: 2px;" role="menuitem"> 
<img src="resources/images/ic_settings_24.png" title="Configuración "> 
</li> 
</ul> 
</div> 

DROP &下拉菜單

<div class="jqx-menu-popup jqx-menu-popup jqx-menu-popup-officeWFM2" style="border: medium none; background-color: transparent; z-index: 17000; padding: 0px; margin: 0px; position: absolute; top: 39.3333px; left: 1086.5px; display: none; visibility: visible; width: 159px; height: 124px;"> 
<div style="background-color: transparent; border: none; position:absolute; overflow:hidden; left: 0; top: 0; right: 0; width: 100%; height: 100%;"> 
<ul id="jqxWidget60bb7a98" class="jqx-widget-content jqx-widget-content-officeWFM2 jqx-menu-dropdown jqx-menu-dropdown-officeWFM2 jqx-popup jqx-popup-officeWFM2 jqx-rc-l jqx-rc-l-officeWFM2 jqx-rc-b jqx-rc-b-officeWFM2" role="menu" style="overflow: hidden; position: absolute; left: 0px; display: block; top: -119px; margin-left: 0px; margin-right: 0px; padding-left: 2px; padding-right: 2px;"> 
<li id="0" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item jqx-menu-item-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" role="menuitem"> 
<span style="position: relative; left: 3px; top: -2px;">Perfiles</span> 
</li> 
<li id="1" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item jqx-menu-item-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" role="menuitem"> 
<span style="position: relative; left: 3px; top: -2px;">Usuarios</span> 
</li> 
<li id="2" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item jqx-menu-item-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" role="menuitem"> 
<span style="position: relative; left: 3px; top: -2px;">Parámetros</span> 
</li> 
<li id="3" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item jqx-menu-item-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" role="menuitem"> 
<span style="position: relative; left: 3px; top: -2px;">Datos entidades</span> 
</li> 
</ul> 
</div> 
</div> 

我需要Selenium Webdriver中的代碼來選擇,例如,「USUARIOS」選項

主窗口,單擊按鈕「Configuración」

+0

您是否需要點擊設置按鈕才能看到下拉菜單,或者您是否需要將鼠標懸停在鼠標上?也許這是你的問題。 – Cosmin

+0

@Pablo Cabanillas,你的菜單打開時點擊設置圖標或只是在那裏懸停鼠標? – NarendraR

+0

嗨@Cosmin我需要whith selenium點擊名爲「Configuración」的圖標來選擇一個選項。它是一樣的在後臺做或不做 非常感謝 –

回答

0

如果你將鼠標懸停在配置圖像看到子菜單,然後使用Actions類執行的操作懸停,並在下面點擊菜單上方式:

WebElement configMenu = driver.findElement(By.xpath("//ul/li[@role='menuitem']/img[contains(@title,'Config')]")); 
WebElement UsuariosSubmenu = driver.findElement(By.xpath("//ul/li/span[normalize-space()='Usuarios']")); 

Actions action = new Actions(driver); 
action.moveToElement(configMenu).clickAndHold(UsuariosSubmenu).click().build().perform(); 
+0

Hi @Tuks If我使用你的代碼右邊是一個WebElement,左邊是一個String。我有一個錯誤。你有這個解決方案嗎? 謝謝 –

+0

對不起@Pablo Cabanillas,它是我的錯誤,它是一個webElement左邊。我已更新代碼 – NarendraR

+0

再次@Tucks。我已更改WebElement的字符串但不起作用 問題在最後一行action.moveToElement ... 控制檯中的錯誤是 線程「main」中的異常org.openqa.selenium.interactions.MoveTargetOutOfBoundsException: (119.9749984741211,-73.64999389648438)超出了視口寬度(1366)和高度(659) 所以對不起,所有的問題,但我的第一次與硒和編程Languaje –