遍历表行并使用Python Selenium打印href文本

时间:2019-07-17 23:51:43

标签: python loops selenium

我的总体目标是遍历此表中的每个tr,并为每个td遍历几个tr,并打印出其中的文本。

我已经尝试回去到身体,但仍然没有运气。理想情况下,我只想通过for运行table[@id='aui']/tbody/tr[i]/td[i]循环,其中i是range(0,sizeOfTable)的变量

ele = driver.find_elements_by_xpath("//body/div[@id='page']/section[@id='content']/div[@class='aui-page-panel']/div[@class='aui-page-panel-inner']/section[@class='aui-page-panel-content']/div[@class='aui-page-panel']/div[@class='aui-page-panel-inner']/section[@class='aui-page-panel-content']/div[@class='module']/div[@id='projects']/div[@class='p-list']/table[@id='aui']/tbody/tr[1]/td[1]")

现在,当我在创建print(ele.text)之后运行ele时,它只是打印出一个空列表

this is the html I'm working off of:

1 个答案:

答案 0 :(得分:1)

该问题的原因是XPath错误。该表包含classaui,但没有id

按如下所示纠正XPath。

  //table[@class='aui']//tr

这应该为您提供行列表,然后您可以遍历它们。

脚本:如果要在单元格中打印文本,请使用它。

rows = driver.find_element_by_css_selector("table.auti  tr")
for row in rows:
    # get the hrefs
    columsWithLink = row.find_element_by_xpath(".//td[a]")
    for column in columsWithLink:
        # print column text
        print (column.text)
        # print link href
        print(column.find_element_by_xpath(".//a").get_attribute("href"))

脚本:如果您只想打印链接href,请使用以下内容

rows = driver.find_element_by_css_selector("table.auti  tr")
for row in rows:
    # get the hrefs
    links = row.find_element_by_xpath(".//td/a")
    for link in links:
        # print link href
        print(link.get_attribute("href"))