首页 > 解决方案 > 如何在网站表格上以列表形式获取一个特定列的所有值?

问题描述

我正在尝试在网站上的表格中列出整列中的所有值。

现在,我正在尝试一种不同的方法,即单击特定的 html 代码并彻底执行操作。但是如果我可以在整个过程中循环列表的每个值,这样做会快得多。

我现在正在做的事情:Invoice top 是表格中最上面的发票(我使用 Absolute XPATH 作为这个参考)

我需要列出所有发票号码

def loop(Invoice_Top,driver):
    while Invoice_Top is not '' or Invoice_Top is not 0:
            Invoice_Top.click()

并且在.click()之后,执行整个过程。

标签: pythonselenium

解决方案


我不认为 usingInvoice_Top是这样做的好方法,因为它代表单行,但听起来您正试图从所有行中获取发票编号。你会更幸运地获取td包含发票编号的所有元素的列表,并从那里循环遍历它们。

# get all invoice cells -- skip the first tr element, because it just contains column headers
invoice_cells = driver.find_elements_by_xpath("//table/tbody/tr[not(contains(@class, 'printonly'))]/td[1]")

for invoice_cell in invoice_cells:
    print(invoice_cell.text)

这应该打印发票编号——XPath 从每一行中挑选第一个td元素,在本例中是发票编号,并将其内容打印到控制台。


推荐阅读