单击表SELENIUM PYTHON上的块

时间:2016-01-06 23:06:21

标签: python html selenium xpath css-selectors

我正在尝试单击表格上的空块。这是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个单元格)?

2 个答案:

答案 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()定义为上面的示例,但不能使用正确的变量/行。

这对我有用。