【问题标题】:Python Selenium find next Element after an Element is foundPython Selenium 在找到一个元素后查找下一个元素
【发布时间】:2021-12-13 13:27:48
【问题描述】:

我在使用 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>

(原始网址仅供公司使用,无法发布)

在 HTML 代码中有多个(每次更改计数)表,类似于上面的代码。要找到正确的表,我正在使用此代码:

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]

对我来说很好,问题是我还需要在正确的表格之后识别选择标签。
任何人都可以帮我解决这个代码 sn-p 吗?

【问题讨论】:

    标签: python selenium siblings findelement


    【解决方案1】:
    self.browser.find_elements(By.XPATH, f'//table/thead/tr/th[{column}]')
    

    这将返回一个列表。你可以使用下面的 XPath 去选择标签:

    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")
    

    应该完成工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 2014-07-16
      • 1970-01-01
      • 2018-07-28
      • 2022-12-21
      • 2013-05-29
      • 2014-01-03
      • 2021-09-28
      相关资源
      最近更新 更多