Python Selenium 在找到一个元素后寻找下一个元素
Python Selenium find next Element after an Element is found
我在使用 Selenium 找到正确的元素时遇到了一些问题。 HTML 代码如下所示:
<div>
<div>
<div>
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div></div>
<div>
<div>
<div>
<div>
<label></label>
<label></label>
<select></select>
</div>
</div>
</div>
</div>
(无法发布原件 URL 仅供公司使用)
在 HTML 代码中有多个(每次计数更改)Tables 看起来像上面的代码。要找到正确的 Table,我正在使用此代码:
for index, table in enumerate(self.browser.find_elements(By.XPATH, f'//table/thead/tr/th[{column}]')):
if table.text == header_text: break
main_table = self.browser.find_elements(By.XPATH, f'//table')[index]
对我来说工作正常,问题是我还需要在正确的 table 之后识别 select 标签。
谁能帮我解决这个代码片段?
self.browser.find_elements(By.XPATH, f'//table/thead/tr/th[{column}]')
这将 return 一个列表。您可以使用以下 XPath 转到 select 标记:
list_of_th = self.browser.find_elements(By.XPATH, f'//table/thead/tr/th[{column}]')
select_web_element = list_of_th[0].find_element(By.XPATH, ".//ancestor::table/../../../following-sibling::div[2]/descendant::select")
应该完成工作。
我在使用 Selenium 找到正确的元素时遇到了一些问题。 HTML 代码如下所示:
<div>
<div>
<div>
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div></div>
<div>
<div>
<div>
<div>
<label></label>
<label></label>
<select></select>
</div>
</div>
</div>
</div>
(无法发布原件 URL 仅供公司使用)
在 HTML 代码中有多个(每次计数更改)Tables 看起来像上面的代码。要找到正确的 Table,我正在使用此代码:
for index, table in enumerate(self.browser.find_elements(By.XPATH, f'//table/thead/tr/th[{column}]')):
if table.text == header_text: break
main_table = self.browser.find_elements(By.XPATH, f'//table')[index]
对我来说工作正常,问题是我还需要在正确的 table 之后识别 select 标签。
谁能帮我解决这个代码片段?
self.browser.find_elements(By.XPATH, f'//table/thead/tr/th[{column}]')
这将 return 一个列表。您可以使用以下 XPath 转到 select 标记:
list_of_th = self.browser.find_elements(By.XPATH, f'//table/thead/tr/th[{column}]')
select_web_element = list_of_th[0].find_element(By.XPATH, ".//ancestor::table/../../../following-sibling::div[2]/descendant::select")
应该完成工作。