我有以下动态网页表

(checkbox)   ID_No  country_code  Date          Time           UserName          FileName
            1       5           10/04/2019    12:05:45       [email protected]      filename1
            2       7           10/04/2019    13:05:45       [email protected]      filename2
            3       8           10/03/2019    14:05:45       [email protected]      filename2
            4       9           10/04/2019    14:08:45       [email protected]      filename1



在id_no的左侧有一个复选框,我只想检查FileName ='filename1'的行
和Date = '10 / 04/2019'

当我在Chrome控制台中使用此xpath时:$x("//tr[td[contains(text(),'filename1')]]")[0]'

这包含第一行,其中包含“ filename1”值。我得到此Webtable行的以下HTML

<tr class="class1">
  <td width="2%"> </td>   <!–– checkbox ––>
  <td width="2%"> 1 </td>
  <td width="2%"> 5 </td>
  <td width="2%"> 10/04/2019 </td>
  <td width="2%"> 12:05:45 </td>
  <td width="2%" style=word-wrap:break-word> [email protected] </td>
  <td width="2%"> filename1 </td>
</tr>



要检查包含“ filename1”的行的复选框,我正在使用以下代码

driver = webdriver.Chrome()
driver.get(website_URL)
driver.find_element_by_xpath("//tr[td[contains(text(),'filename1')]]/input").click()


如何检查其中FileName ='filename1'和Date = '10 / 04/2019'的复选框?

另外,如何取消选中复选框?

最佳答案

您可以采用与选中框相同的方式取消选中这些框-单击input元素。

您提供的XPath定位器是一个很好的选择。要选择input下的其他td元素,只需更改文本即可:

driver.find_element_by_xpath("//tr[td[contains(text(),'10/04/2019')]]/input").click()


要查找两者的输入,可以使用以下命令:

driver.find_element_by_xpath("//tr[td[contains(text(),'filename1')] and td[contains(text(),'10/04/2019')]]/input").click()


希望这个对你有帮助。

10-08 02:56