无法使用webdriver定位器找到javascript下拉列表

时间:2014-01-15 01:56:32

标签: selenium drop-down-menu selenium-webdriver

我正在尝试找到下拉列表并从中选择一个选项,但由于没有,ID,名称或任何明显的其他定位器来访问该下拉列表,我无法找到该下拉列表。

我甚至尝试过使用xpath,他们只有成功点击该下拉列表并打开列表但是我无法从中选择任何项目。

我甚至尝试过这样的事情:     String metric =" html / body / div [3] / div [2] / form / div / table / tbody / tr 1 / td [2] / div / a&#34 ;;     单击(driver.findElement(By.xpath(公制)));      选择("连接状态")。来自(By.cssSelector(" select2-choice")); 以下是我需要选择的选项的屏幕截图:

enter image description here

请帮我解决..

我提供了以下的JS代码

<form> <div class="my-form"> <span class="table-title">Widget Information</span>  
<table> <tbody> <tr class="ui-field"> <td align="right" width="30%">Metric Type</td>
<td> <div id="s2id_autogen1" class="select2-container" style="display: inline;"> <a
class="select2-choice" tabindex="-1" onclick="return false;" 
href="javascript:void(0)"> <span class="select2-chosen">Connection Status</span> <abbr
class="select2-search-choice-close"></abbr> <span class="select2-arrow"> <b></b>
</span> </a> <input id="s2id_autogen2" class="select2-focusser select2-offscreen" 
type="text">

1 个答案:

答案 0 :(得分:0)

首先,单击菜单上的WebElement以展开它。然后,做这样的事情:

List<WebElement> menuItems = driver.findElements( 
    By.xpath( ".//div[@class='select2-container']/*/option" ) );
for ( WebElement el: menuItems ) {
    if ( el.getText().equals("Item I am looking for") ) el.click();
    break;
}

或者沿着这些方向行事应该有效。