Python Selenium webdriver可以';找不到任何元素chrome://downloads
我在python中使用selenium和chromedriver 我的问题是,当我试图访问chrome下载页面上的元素时,selenium给了我一个错误(chrome://downloads). 例如,我尝试获取文件url“” 例外情况:Python Selenium webdriver可以';找不到任何元素chrome://downloads,python,google-chrome,selenium,selenium-webdriver,selenium-chromedriver,Python,Google Chrome,Selenium,Selenium Webdriver,Selenium Chromedriver,我在python中使用selenium和chromedriver 我的问题是,当我试图访问chrome下载页面上的元素时,selenium给了我一个错误(chrome://downloads). 例如,我尝试获取文件url“” 例外情况: Traceback (most recent call last): File "<pyshell#34>", line 3, in <module> driver.find_element_by_id("url")
Traceback (most recent call last):
File "<pyshell#34>", line 3, in <module>
driver.find_element_by_id("url")
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 269, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 752, in find_element
'value': value})['value']
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "D:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"url"}
(Session info: chrome=56.0.2924.87)
(Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 10.0.10586 x86_64)
回溯(最近一次呼叫最后一次):
文件“”,第3行,在
驱动程序。通过id(“url”)查找元素
文件“D:\Python\lib\site packages\selenium\webdriver\remote\webdriver.py”,第269行,在find\u element\u by\u id中
返回self.find_元素(by=by.ID,value=ID_u)
文件“D:\Python\lib\site packages\selenium\webdriver\remote\webdriver.py”,第752行,位于find\u元素中
'value':value})['value']
文件“D:\Python\lib\site packages\selenium\webdriver\remote\webdriver.py”,第236行,在execute中
self.error\u handler.check\u响应(响应)
文件“D:\Python\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第192行,在check\u响应中
引发异常类(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“id”,“选择器”:“url”}
(会话信息:chrome=56.0.2924.87)
(驱动程序信息:chromedriver=2.27.440174(E97A722CAFC2D3A8B807EE115BFB307F7D2CFD9),平台=Windows NT 10.0.10586 x8664)
通过driver.execute\u script()
使用javascript对我也不起作用。
当我可以在浏览器中看到元素时,为什么我会得到一个
NoTouchElementException
?目标链接位于几个影子根
块中。试试这个:
driver = webdriver.Chrome("chromedriver.exe")
driver.get("chrome://downloads/")
manager = driver.find_element_by_css_selector('body/deep/downloads-manager')
item = manager.find_element_by_css_selector('body/deep/downloads-item')
shadow = driver.execute_script('return arguments[0].shadowRoot;', item)
link = shadow.find_element_by_css_selector('div#title-area>a')
file_url = link.get_attribute("href")
谢谢你的回答,正是我想要的。(只需将“css选择器”更改为“css_选择器”)哦,是的。错过了:)
Traceback (most recent call last):
File "<pyshell#34>", line 3, in <module>
driver.find_element_by_id("url")
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 269, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 752, in find_element
'value': value})['value']
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "D:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"url"}
(Session info: chrome=56.0.2924.87)
(Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 10.0.10586 x86_64)
driver = webdriver.Chrome("chromedriver.exe")
driver.get("chrome://downloads/")
manager = driver.find_element_by_css_selector('body/deep/downloads-manager')
item = manager.find_element_by_css_selector('body/deep/downloads-item')
shadow = driver.execute_script('return arguments[0].shadowRoot;', item)
link = shadow.find_element_by_css_selector('div#title-area>a')
file_url = link.get_attribute("href")