我正在尝试单击表格上的空块。这是HTML代码
<table class= "data_table" cellspacing="0">
<tbody>
<tr>
<td class="matrix_cell" sytle= "width:32"></td>
<td class="matrix_cell" sytle= "width:32"></td>
<td class="matrix_cell" sytle= "width:32"></td>
<td class="matrix_cell" sytle= "width:32"></td>
<td class="matrix_cell" sytle= "width:32"></td>
<td class="matrix_cell" sytle= "width:32"></td> #the cell I want to click
<td class="matrix_cell" sytle= "width:32"></td>
此单元格的xpath是
cellclick=driver.find_element_by_xpath("id('timeline_data')/table/tbody/tr[4]/td[2]/div/table/tbody/tr/td[6]").click()
xpath的问题是单元格可能并不总是为空。
我试图遍历表格:
cells=driver.find_element_by_class_name("data_table")
for block in cells:
if block ==6:
block.click
我也尝试过使用css_selector:
cells=driver.find_element_by_css_selector("td.matrix_cell:last-child").click()
如何使用selenium点击桌面上的空单元格(又名第6个单元格)?
答案 0 :(得分:0)
尝试以下xpath: -
//*[@id='timeline_data']//table[@class='data_table']//td[6]
OR
//table[@class='data_table']//td[6]
答案 1 :(得分:-1)
为什么不在xpath中使用变量?每个单元格都应该有一个与其他单元格不同的数字。 例如:
"/table/tbody/tr[4]/td["+ str(x) + "]/div/table/tbody/tr/td[6]"
您可以将x = 1
等同并使用while循环来检查单元格是否为空,如果不为空则使x = x + 1
等等。因此,当单元格将为空时,行将由x
给出,您可以将xpath.click()
定义为上面的示例,但不能使用正确的变量/行。
这对我有用。