使用 Selenium find 元素在网页上获取第 3 个元素(表)

Get the 3rd element (table) on webpage using Selenium find element

提问人:Shaun Potts 提问时间:11/13/2023 更新时间:11/14/2023 访问量:25

问:

table = driver.find_element(By.XPATH, "//table")

这有效,但在网页上找到第一个表,页面上有三个,我想要第三个,我怎样才能找到第三个表元素,或者以其他方式唯一标识并找到正确的表?

<table class="sortable" id="results" cellspacing="4" cellpadding="0" align="center" border="0">
    <caption>...</caption>
    <thread>...</thread>
    <tbody>...</tbody>
</table>
</div>
<br>
 <div>
<table class="sortable" id="results" cellspacing="4" cellpadding="0" align="center" border="0">
selenium-webdriver html-table selenium-chromedriver

评论


答:

1赞 Shawn 11/13/2023 #1

(//table)[1]- 这将在 DOM 中找到第一个表,这将在 DOM 中找到第二个表,依此类推。(//table)[2]

请尝试以下方法找到第三个表:

third_table = driver.find_element(By.XPATH, "(//table)[3]")
1赞 Programmer0403 11/14/2023 #2

或者您可以使用 id:

third_table = driver.find_element(By.ID, "results")

您也可以使用完整的 XPath,但不能保证如果 DOM 更改,它将保持不变。