【问题标题】:Unable to find element by id on chrome无法在 chrome 上通过 id 找到元素
【发布时间】:2020-05-20 13:48:30
【问题描述】:

我正在使用 python 和 selenium 自动化来切换 chrome://extensions/ 上的开关。在网站顶部,有一个开发者模式的开关,我正在尝试使用

driver.find_element_by_id("knob").click()

但是,这并没有找到名为 ID 的元素。有谁知道我如何选择元素来切换开发者模式?

【问题讨论】:

  • chrome://extensions/ 是纯 html 页面吗?
  • @JohnGordon 平原是什么意思?它使用我以前从未见过的标签,但我不知道任何 HTML。我可以使用 XPath 查找吗?
  • 你确定按钮的 id 被命名为旋钮?我最后看到的 id 为 devMode
  • @snnguyen 我尝试了 devMode、bar 和 Knob,但在该页面上找不到任何 Id
  • 嗯,我无法查询 chrome://extensions/ 上的任何元素。如果您正在尝试测试扩展程序,通过 ChromeOptions 启用它会更容易

标签: python selenium google-chrome selenium-chromedriver


【解决方案1】:

该元素位于 ShadowDOM 内部,因此您需要显式访问它,
Accessing Shadow DOM tree with Selenium

一个更简单的解决方案似乎是直接调用内部API:

driver.execute_script('''
  document.querySelector("extensions-manager")
    .delegate.setProfileInDevMode(true)
''')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 2018-01-02
    • 2011-05-28
    • 2017-07-23
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多