为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 google chrome 网页上找到元素

无法在 google chrome 网页上找到元素

慕娘9325324 2023-08-22 16:30:58
我正在尝试更改 chrome 配置文件名称,例如:chrome://settings/manageProfile使用 Python 和 Selenium :这是左上角的空文本框:问题是我无法访问该元素,我尝试了以下所有内容:chromeProfilName = browser.find_element(By.XPATH, "//*[@id='profile-name']")chromeProfilName = browser.find_element(By.ID, "profile-name")chromeProfilName = browser.find_element(By.ID, "input") 我不太明白 HTML 页面是如何制作的,但是当我检查该页面时,我发现了textboxID = "input". 然而,该值存储在一个span中,其ID是"profile-name".我总是遇到同样的问题:“没有这样的元素:无法找到元素”。我对 Selenium 没有深入的了解。我已经在互联网上寻找答案,但一无所获。
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

要访问输入元素,您需要遍历shadowroot元素。使用以下内容querySelector来标识输入标签。


driver.get("chrome://settings/manageProfile")

profileInput = driver.execute_script('return document.querySelector("settings-ui").shadowRoot.querySelector("settings-main").shadowRoot.querySelector("settings-basic-page").shadowRoot.querySelector("settings-people-page").shadowRoot.querySelector("settings-manage-profile").shadowRoot.querySelector("cr-input").shadowRoot.querySelector("#input")')

profileInput.click()

profileInput.clear()

profileInput.send_keys("user676767")

浏览器快照:

https://img1.sycdn.imooc.com//64e4728c0001bd1f15430972.jpg

查看完整回答
反对 回复 2023-08-22
?
阿晨1998

TA贡献2037条经验 获得超6个赞

接受的答案有效,我只想添加一些内容:

对于那些认为你必须用暗影根源寻找自己的道路的人来说,实际上你不必这样做。

以 Chrome 为例(在 Firefox 上不可能),当您定位源代码中的元素时,复制“JS 路径”。然后您只需将路径粘贴到execute_script 函数中即可。


查看完整回答
反对 回复 2023-08-22
  • 2 回答
  • 0 关注
  • 1442 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信