当前位置: 首页 > 知识库问答 >
问题:

Selenium web驱动程序无法在Chrome://下载中找到元素

董联
2023-03-14

我将硒与python中的Chrome驱动程序一起使用。

我的问题是,硒给我一个错误,因为我试图访问铬下载页面上的元素(铬://下载)。例如,我试图获取文件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

共有1个答案

祝锐
2023-03-14

目标链路位于多个影子根块内。试试这个:

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")
 类似资料:
  • 我正在尝试使用Selenium web驱动程序。我正在使用asp。net mvc。我已经设置了一个非常基本的测试。我基本上只是想打开浏览器。 但当我运行测试我得到这个错误消息 结果消息: 文件c:\chromedriver.exe\chromedriver.exe不存在。驱动程序可以在http://chromedriver.storage.googleapis.com/index.html下载 我

  • 问题内容: 我正在尝试运行一个ruby文件,该文件将使用seleniumwebdriver启动chrome驱动程序。我有selenium独立服务器2.35.0。和chromedriver可执行文件已安装。我正在通过运行服务器来启动 两个会话正在启动,chrome驱动程序无法启动。 这是在我使用以下文件运行文件之后 我对此并不陌生,无法找出问题所在。而且,我也试图让它无头运行,所以我正在运行Xvfb

  • 我试图运行一个ruby文件,这将启动chrome驱动程序使用selenium WebDriver。我有selenium独立服务器2.35.0。和chromedriver可执行文件安装。我通过运行来启动服务器, 这是在我使用 我对此很陌生,不知道哪里出了问题。我也试图无头运行它,所以我有Xvfb运行。有人能帮我指出我犯的错误并启动chromedriver吗? 更新: 谁能帮我弄清楚出了什么问题吗?

  • 我正在努力编写代码检查下载是由selenium和chrome驱动程序完成的。我的想法是 1.转到下载页面(“Chrome://下载/”) 然后尝试单击developer工具中的Ctrl+F,再次粘贴xpath。我找不到元素。为什么?检查没有框架。

  • 环境:Eclipse-Java-Junit-Firefox web driver 屏幕截图网址 : https://www.dropbox.com/s/26fl2l1y1mkpxiz/Screenshot 2014-01-06 01.52.43.png 我试图测试一个网页,但找不到元素(看起来像按钮)。Firebug的xpath是:<code>/*〔@id='DERIVED_REGFRM1_LIN