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('\n')[:2]
        self.driver.close()
        self.driver.switch_to_window(win_lst[0])
        return {'name': name, 'dl_url': dl_url}
复制代码

 

posted on   旧楚布衣  阅读(2566)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示