使用 selenium 访问嵌套在多个元素中的 div

Accessing a div nested in multiple elements using selenium

提问人:Diana 提问时间:10/26/2023 更新时间:10/26/2023 访问量:22

问:

我正在尝试使用 python 中的 selenium 库自动执行 Web 交互(我是初学者)。这是我希望代码自动按下的按钮的一些html代码:

<div class="MuiButtonBase-root MuiIconButton-root MuiAccordionSummary-expandIcon MuiIconButton-edgeEnd" aria-disabled="false" aria-hidden="true"><span class="MuiIconButton-label"><svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path></svg></span><span class="MuiTouchRipple-root"></span></div>

我尝试编写一个函数,该函数遍历网站中每个html父级的每个子级,并找到具有该元素类的子级:

def find_element_by_class(driver, class_name):

    elements = driver.find_elements(By.XPATH, "//*")

    def search_element(elements):
        for element in elements:
            if element.get_attribute("class") == class_name:
                return element
            else:
                child_elements = element.find_elements(By.XPATH, "./*")
                if child_elements:
                    found_element = search_element(child_elements)
                    if found_element:
                        return found_element
        return None

    return search_element(elements)

element = find_element_by_class(driver, "MuiButtonBase-root MuiIconButton-root MuiAccordionSummary-expandIcon Mui-expanded MuiIconButton-edgeEnd")
element.click()

我期待该函数找到正确的元素并单击它。相反,连接只是超时(可能是因为函数需要很长时间才能完成)。有没有更好的方法可以做到这一点,或者我在哪里出错了?

python html selenium-webdriver 网页抓取 selenium-chromedriver

评论


答: 暂无答案