使用 Xpath 单击基于表列值的复选框。下面是html
<table id="tblHotels">
<TBODY>
<TR>
<TH align="left">
<INPUT checkbox="" id="chkNSelectAll name=chkNSelectAll type="/>
</TH>
<TH align="left" title="Hotel">Hotel</TH>
<TH title=" align=left">
<SPAN id="spnExpandBtn">
<IMG/>
</SPAN>
</TH>
<TH align="left" title="Hotel">Hotel</TH>
<TH align="left" title="Reg Date">Reg Date</TH>
<TH align="left" title="Room Type">Room Type</TH>
<TH align="left" title="Location">Location</TH>
<TH align="left" title="Room Number">Room Number</TH>
</TR>
<TR>
<TD colSpan="11">
<IMG src=" ../NoExpiry/images/uaimBSpacer.gif"/>
</TD>
</TR>
<TR>
<TD>
<INPUT id="chkNSelect" name="chkNSelect" type="checkbox" value="on"/>
</TD>
<TD customHiddenText="">MATHEW Joe</TD>
<TD/>
<TD customHiddenText="">
<SPAN>Affray (
<STRONG/>Kim Lee)
</SPAN>
</TD>
<TD class="regDate customHiddenText=">10/01/2014</TD>
<TD customHiddenText="">1HE</TD>
<TD customHiddenText="">South West </TD>
<TD id="tdChildroom name=" tdChildroom=""/>
<INPUT id="hidYID" name="hidYID" type="hidden" value="409">
<INPUT id="hidYD" name="hidYD" type="hidden">
<INPUT id="hidYDID" name="hidYDID" type="hidden" value="1015389"/>
</INPUT>
</INPUT>
</TR>
<TR>
<TD>
<INPUT id="chkNSelect" name="chkNSelect" type="checkbox" value="on"/>
</TD>
<TD customHiddenText="">MATHEW Penny</TD>
<TD/>
<TD customHiddenText="">
<SPAN>Affray (
<STRONG/>Jim Lee)
</SPAN>
</TD>
<TD class="regDate customHiddenText=">10/01/2014</TD>
<TD customHiddenText="">1HE</TD>
<TD customHiddenText="">South West </TD>
<TD id="tdChildroom name=" tdChildroom=""/>
<INPUT id="hidYID" name="hidYID" type="hidden" value="409">
<INPUT id="hidYD" name="hidYD" type="hidden">
<INPUT id="hidYDID" name="hidYDID" type="hidden" value="1015389"/>
</INPUT>
</INPUT>
</TR>
</TBODY>
</table>
这就是我正在尝试的,这总是点击第一个复选框?
Driver.FindElementByXPath("//td[contains(text(),'MATHEW Penny')]/preceding::td/input[@name='chkNSelect']").Click()
如果我尝试只查找包含文本的列,它可以找到它,而不是为什么它找不到前面的复选框并跳转到第一行复选框?
Driver.FindElementByXPath("//td[contains(text(),'MATHEW Penny')]
我的要求是选择第一个复选框(执行某些操作,例如:将其添加到另一个表)取消选中它,然后选中第二个复选框(执行某些操作,例如:将其添加到另一个表)。
最佳答案
用于马修·佩妮:
//td[contains(text(),'Penny')]/preceding-sibling::td/input[@name='chkNSelect']
用于马修·乔:
//td[contains(text(),'Joe')]/preceding-sibling::td/input[@name='chkNSelect']
关于selenium - 单击基于表列值的复选框 - IE Webdriver Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22039158/