<tr class="tinside">
<td style="width:80px;">
<input type="checkbox" onclick="checkCheck(4);" value="1151218123182|N"
name="cityno">
<input type="hidden" value="0" name="dds_id4">
DELHI
</td>
我可以使用以下命令driver.find_element_by_xpath("//input[@type='checkbox' and @onclick='checkCheck(5);']").click()
但首先我们必须知道命令中使用的数字值,如5。 数字值在运行时指定像德里 - 4孟买 - 5斋浦尔--6伦敦 - 7巴黎 - 8勒克瑙 - 9
我只知道城市名称,但是值在运行时分配并隐藏...所以输入参数是城市名称。在此先感谢您分享您宝贵的建议..
更新#2
<html><head>
<body>
<div id="container"><div class="align_center">
<table class="table_style">
<tbody><tr class="table_header">
<tr class="tinside">
<td style="width:80px;">
<input type="checkbox" onclick="checkCheck(12);" value="1151228060704|N" name="ordno">
<input type="hidden" value="0" name="dds_id12"><input type="hidden" value="CANS" name="status12">DLEH</td>
<td class="center_align">ABC</td>
<input type="hidden" value="9341" id="stk_token12" name="stk_token12"><td class="center_align">XYZ</td>
<input type="hidden" value="NN" id="stk_me12" name="stk_me12"><td class="center_align">11275</td>
<td class="center_align">-</td>
<td class="center_align">0.00</td>
<td class="center_align">-</td>
<td class="center_align">Item1</td>
<td class="center_align">Price</td>
<td class="center_align">Rs. 30.40</td>
<td class="center_align">Dec 27 2015</td>
<td class="center_align">0.00</td>
<td class="center_align">0 </td>
<td class="center_align">NN</td>
</tr>
<tr class="tinside">
<td style="width:80px;">
<input type="checkbox" onclick="checkCheck(12);" value="1151228060704|N" name="ordno">
<input type="hidden" value="0" name="dds_id12"><input type="hidden" value="CANS" name="status12">DELHI</td>
<td class="center_align">ABC</td>
<input type="hidden" value="9341" id="stk_token12" name="stk_token12"><td class="center_align">XYZ</td>
<input type="hidden" value="NN" id="stk_me12" name="stk_me12"><td class="center_align">11275</td>
<td class="center_align">-</td>
<td class="center_align">0.00</td>
<td class="center_align">-</td>
<td class="center_align">Item2</td>
<td class="center_align">Price</td>
<td class="center_align">Rs.35.40</td>
<td class="center_align">Dec 27 2015</td>
<td class="center_align">0.00</td>
<td class="center_align">0</td>
<td class="center_align">NN</td>
</tr>
</tbody></table>
</div></div>
</body>
</html></head>
我需要在复选框名称及其价格的基础上获得复选框,如给定的示例,需要选择复选框名称DELHI和价格值Rs。 35.40。这两个参数可用于选择正确的复选框。
答案 0 :(得分:0)
您可以根据td
元素的文字内容唯一标识复选框。
因此,为了识别与' DELHI '对应的复选框,我们可以将修改后的xpath写成相同的语句:
driver.find_element_by_xpath("//td[contains(.,'DELHI')]/input[@type='checkbox']").click()
回答“更新#2”
下的修订问题如果您想根据价格选择复选框,我们可以使用以下xpath执行此操作:
//td[contains(., 'Rs.35.40')]/parent::tr/td[contains(.,'DELHI')]/input[@type='checkbox']
在这个xpath中,我们首先确定包含期望价格(Rs.35.40)的单元格(td),并基于它 - 我们正在识别其父级(这是'tr')。确定了所需的“tr”后,我们找到了所需的复选框,该复选框位于“td”下,文本内容为“DELHI”。
因此,您修改的代码,选择对应于价格'Rs.35.40'的'DELHI'复选框将如下所示:
driver.find_element_by_xpath("//td[contains(., 'Rs.35.40')]/parent::tr/td[contains(.,'DELHI')]/input[@type='checkbox']").click()