[英]Selenium webdriver can't find elements at chrome://downloads
我在蟒蛇中使用了硒與chromedriver。
我的問題是,當我嘗試訪問chrome下載頁面上的元素時,selenium會給我一個錯誤(chrome:// downloads)。 例如,我嘗試獲取文件URL“ http://file.jpg ”。
<a id="url" target="_blank" href="http://file.jpg">http://file.jpg</a>
但是當我嘗試通過它的id獲取元素時,我得到一個例外。
碼:
driver = webdriver.Chrome("chromedriver.exe")
driver.get("chrome://downloads/")
file_url = driver.find_element_by_id("url").get_attribute("href")
例外:
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.execute_script()
使用javascript對我來說也不起作用。 當我在瀏覽器中看到元素時,為什么我會收到NoSuchElementException
?
目標鏈接位於多個shadow-root
塊內。 試試這個:
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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.