webdriver 解决shadow-root获取chrome下载项

Posted 旧楚布衣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webdriver 解决shadow-root获取chrome下载项相关的知识,希望对你有一定的参考价值。

    def _return_element(self, ele):
        return self.driver.driver.execute_script("return arguments[0].shadowRoot", ele)
    
    def verify_dl(self):
        """
        返回最近一个下载,目前仅支持chrome
        :return:
        """
        self.driver.execute_script(window.open(""))
        win_lst = self.driver.window_handles
        self.driver.switch_to_window(win_lst[-1])
        self.driver.get(chrome://downloads)
        first_sd = self._return_element(self.driver.find_element_by_css_selector(css=downloads-manager))
        second_sd = self._return_element(first_sd.find_element_by_css_selector("#downloadsList>downloads-item"))
        name, dl_url = second_sd.find_element_by_css_selector(#details).text.split(
)[:2]
        self.driver.close()
        self.driver.switch_to_window(win_lst[0])
        return {name: name, dl_url: dl_url}

 

以上是关于webdriver 解决shadow-root获取chrome下载项的主要内容,如果未能解决你的问题,请参考以下文章

Ruby:在 Shadow-Root DOM 中获取 Web 元素

java+selenium,请问该如何定位#shadow-root里面的元素?

百度云 shadow-root 内的video 倍速播放

如何使用 jquery 和 selenium 在“chrome://downloads”访问“shadow-root”下的元素?

有人知道如何使用 selenium webdriver 识别 shadow dom web 元素吗?

在 iframe 的文档和/或 shadow-root 中注入 html dom