从python中的selenium元素列表中获取第二个元素

时间:2018-01-05 10:16:20

标签: python selenium

我想得到一个元素的内部html(使用get_attribute('innerHTML')),但它没有和id或class,并且有多个具有相同标记名称的元素

  

TEST1 = driver.find_elements_by_tag_name( “TD”)

这会获得具有相同标记名称的整个元素列表,但这不起作用,因为get_attribute不能使用多个元素

  

TEST2 = driver.find_element_by_tag_name( “TD”)

这可行,但获得了第一个td元素,但我想要第二个td元素

我该如何正确地做到这一点?

2 个答案:

答案 0 :(得分:0)

你可以像下面这样使用xpath来获取表格中每一行的第二个td。

Sheet1.Rows("4:" & Rows.Count).Delete

如果您需要从特定的表中修改xpath以转到所需的表。

答案 1 :(得分:0)

根据您的问题,以下代码行将返回第一个td元素:

test2=driver.find_element_by_tag_name("td")

要检索第二个td元素中的文本,您可以使用以下任一行代码:

  • xpath

    test2 = driver.find_element_by_xpath("//table//tr//following::td[2]").get_attribute("innerHTML")
    
  • css_selector

    test2 = driver.find_element_by_css_selector("//table > tr > td:nth-last-child(2)").get_attribute("innerHTML")
    
  

注意 xpath 的最后一部分和 css_selector 肯定会识别第二部分{{ 1}}元素,但您可能需要根据<td>

调整初始部分