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里面的元素?
如何使用 jquery 和 selenium 在“chrome://downloads”访问“shadow-root”下的元素?