【发布时间】:2017-08-12 16:00:44
【问题描述】:
我有一个带有 javascript 功能的按钮来显示下拉项目,而不是通常的选择框。我需要提取此下拉列表中列出的所有项目并导出到 exel 表。以下按钮下列出的项目属于“复选框”类型。我正在使用 selenium webdriver。 这是 HTML 代码:
<input id="selServicesBtn" value="SELECT OPTION" onclick=" checkBoxDisp();" type="button">
<i class="fa fa-filter" id="FilterIcon"></i>
<div name="chkToggleWindow" id="chkToggleWindow" class="chkToggleWindow" style="display: block;">
<div name="checkboxTagEnclosed" class="checkboxTagEnclosed"
id="checkboxTagEnclosed">
<table name="checkboxTag" class="chkbxtag" cellpadding="3" cellspacing="0" border="0" onchange=" checkOnchange();">
<tbody>
<tr>
<td>
<input id="checkBox_00" type="checkbox" value="OPTION1" cellpadding="3" cellspacing="0" border="0" _bst_unchecked="false" name="checkboxTag" onchange=" checkOnchange();">
<label for="checkBox_00">OPTION1</label>
</td>
</tr>
<tr>
<td>
<input id="checkBox_01" type="checkbox" value="OPTION2" cellpadding="3" cellspacing="0" border="0" _bst_unchecked="false" name="checkboxTag" onchange=" checkOnchange();">
<label for="checkBox_01">OPTION2</label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
这是我尝试过的:`
WebElement table_element = driver.findElement(By.name("checkboxTagEnclosed"));
List<WebElement> tr_collection=table_element.findElements(By.xpath("//*[@id='checkboxTagEnclosed']/table/tbody/tr"));
System.out.println("NUMBER OF ROWS IN THIS TABLE = "+tr_collection.size());
int row_num,col_num;
row_num=0;
for(WebElement trElement : tr_collection)
{
List<WebElement> td_collection=trElement.findElements(By.xpath("td"));
System.out.println("NUMBER OF COLUMNS="+td_collection.size());
col_num=0;
for(WebElement tdElement : td_collection)
{
System.out.println("row # "+row_num+", col # "+col_num+ "text="+tdElement.getText());
col_num++;
}
row_num++;
}
我正在获取行数和列数,但文本为空。
无法获取下拉菜单的内容。请帮忙。
【问题讨论】:
-
所以你想要文本中的选项 1 和选项 2?
-
是的。我想要文本中的 option1 和 option2
-
请告诉我是否必须使用除 xpath 之外的完全不同的方法
-
不应该是标签名“td”而不是xpath? List
td_collection=trElement.findElements(By.xpath("td")); -
Shank 有道理。
List<WebElement> td_collection=trElement.findElements(By.xpath("td"));应该是 Listtd_collection=trElement.findElements(By.tagname("td"));
标签: javascript jquery html selenium