以下是我遇到问题的HTML部分。
我正在尝试做什么:我目前正在使用selenium chrome驱动程序来完成在网站上创建故障单的过程。在某个页面,我必须选择一个选项卡以检查几个复选框(见下文)。但是,它们都具有相同的ID。如何在C#中使用selenium chrome驱动程序选择(比如第二个TOP_TAB& TOP_BUTTON)并单击该元素。
<input type="hidden" name="tabsize" value="5">
<td id="TOP_TAB" width="10" class="leftRightBorder" style="width: 5px;">
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('0','0');" align="center" nowrap=""><img src="images/left-cor.gif" width="5" height="18" border="0"></td>
<td id="TOP_BUTTON" style="cursor: pointer; font-size: 10px; background-color: rgb(181, 200, 217); border-bottom: 2px solid rgb(181, 200, 217); font-weight: normal;"
onclick="fun_HideShowBlock('0','0');" align="center" class="drop" nowrap="" bgcolor="#B5C8D9" width="88">Addendum 02</td>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('0','0');" align="center" nowrap=""><img src="images/right-cor.gif" width="5" height="18" border="0"></td>
</tr>
</tbody>
</table>
</td>
<td id="TOP_TAB" width="10" class="leftRightBorder" style="width: 5px;">
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('1','1');" align="center" nowrap=""><img src="images/left-cor-light.gif" width="5" height="18" border="0"></td>
<td id="TOP_BUTTON" style="cursor: pointer; font-size: 10px; background-color: rgb(217, 223, 239); border-bottom: 0px solid rgb(217, 223, 239); font-weight: bold;"
onclick="fun_HideShowBlock('1','1');" align="center" class="drop" nowrap="" bgcolor="#B5C8D9" width="88">Addendum 01</td>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('1','1');" align="center" nowrap=""><img src="images/right-cor-light.gif" width="5" height="18" border="0"></td>
</tr>
</tbody>
</table>
</td>
<td id="TOP_TAB" width="10" class="leftRightBorder" style="width: 5px;">
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('2','2');" align="center" nowrap=""><img src="images/left-cor.gif" width="5" height="18" border="0"></td>
<td id="TOP_BUTTON" style="cursor: pointer; font-size: 10px; background-color: rgb(181, 200, 217); border-bottom: 2px solid rgb(181, 200, 217); font-weight: normal;"
onclick="fun_HideShowBlock('2','2');" align="center" class="drop" nowrap="" bgcolor="#B5C8D9" width="88">Default Job</td>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('2','2');" align="center" nowrap=""><img src="images/right-cor.gif" width="5" height="18" border="0"></td>
</tr>
</tbody>
</table>
</td>
<td id="TOP_TAB" width="10" class="leftRightBorder" style="width: 5px;">
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('3','3');" align="center" nowrap=""><img src="images/left-cor.gif" width="5" height="18" border="0"></td>
<td id="TOP_BUTTON" style="cursor: pointer; font-size: 10px; background-color: rgb(181, 200, 217); border-bottom: 2px solid rgb(181, 200, 217); font-weight: normal;"
onclick="fun_HideShowBlock('3','3');" align="center" class="drop" nowrap="" bgcolor="#B5C8D9" width="88">Default Job</td>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('3','3');" align="center" nowrap=""><img src="images/right-cor.gif" width="5" height="18" border="0"></td>
</tr>
</tbody>
</table>
</td>
<td id="TOP_TAB" width="10" class="leftRightBorder" style="width: 5px;">
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('4','4');" align="center" nowrap=""><img src="images/left-cor.gif" width="5" height="18" border="0"></td>
<td id="TOP_BUTTON" style="cursor: pointer; font-size: 10px; background-color: rgb(181, 200, 217); border-bottom: 2px solid rgb(181, 200, 217); font-weight: normal;"
onclick="fun_HideShowBlock('4','4');" align="center" class="drop" nowrap="" bgcolor="#B5C8D9" width="88">Default Job</td>
<td id="TOP_BUTTON" style="cursor:hand;" onclick="fun_HideShowBlock('4','4');" align="center" nowrap=""><img src="images/right-cor.gif" width="5" height="18" border="0"></td>
</tr>
</tbody>
</table>
</td>
答案 0 :(得分:0)
如果你知道它总是第二个标签你可以做到这一点(和按钮的想法相同)。
driver.FindElements(By.Xpath("descendant::td[@id = 'TOP_TAB']"))[1];
如果您不知道它将是第二个,但知道您需要带有附录01的那个,您可以这样做:
driver.FindElement(By.Xpath("descendant::td[text() = 'Addendum 01']/ancestor::td[@id = 'TOP_TAB']"));
第二种方式可以获得您想要的项目,然后返回到您想要的标签。