使用selenium获取python中的所有表元素

使用selenium获取python中的所有表元素,python,selenium,html-table,elements,Python,Selenium,Html Table,Elements,我有一个网页,看起来像这样: <table class="data" width="100%" cellpadding="0" cellspacing="0"> <tbody><tr> <th>1</th> <th>2</th> <th>3 by</th> </tr>

我有一个网页,看起来像这样:

<table class="data" width="100%" cellpadding="0" cellspacing="0">
        <tbody><tr>
            <th>1</th>
            <th>2</th>
            <th>3 by</th>
        </tr>
                        <tr>                    <td width="10%"><a href="foo1">5120432</a></td>
                <td width="70%">INTERESTED_SITE1/</td>
                <td width="20%"><a href="foo2">foo2</a></td>
            </tr>
                        <tr class="alt">                    <td width="10%"><a href="foo1">5120431</a></td>
                <td width="70%">INTERESTED_SITE2</td>
                <td width="20%"><a href="foo2">foo2</a></td>
            </tr>
chrome = webdriver.Chrome(chrome_path)
chrome.get("fooSite")
time.sleep(.5)

alert = chrome.find_element_by_xpath("/div/table/tbody/tr[2]/td[2]").text
print (alert)

但我找不到第一个网站。如果我不能在for循环中这样做,我不介意分别获取每个链接。我怎样才能到达那个链接?

使用css查询会更容易

driver.find_element_by_css_selector("td:nth-child(2)")

可以使用xpath处理每行上的byb循环

xpath expression : html/body/table/tbody/tr[i]/td[2]
按获取行数

totals_rows =chrome.find_elements_by_xpath("html/body/table/tbody/tr")
total_rows_length = len(totals_rows)

for (row in totals_rows):
    count = 1
    site =  "html/body/table/tbody/tr["+counter+]+"/td[2]"
    print("site name is :"+ chrome.find_element_by_xpath(site).text)
    site+=1

基本上,循环遍历每一行,并在第二列(td[2])中获得值。

一个温和的警告!它会让你的网页中所有表格的第二列(td)全部显示出来。如果您的网页只有一个表,这将很好地工作。最好使用类名作为锚,这样会很好地工作。每一个边缘都没有一颗子弹