from selenium import webdriver
driver = webdriver.Chrome()
driver.get("chrome://settings")
advanced = driver.find_element_by_css_selector("#advancedToggle > span")
advanced.click()
上面的代码不起作用。要查看高级变量所指的位置,您可以在浏览器中粘贴“ chrome:// settings”(仅在使用chrome时有效),然后向下滚动到底部看到“高级”开关的位置。
该切换甚至有一个ID "advancedToggle"
,但我似乎无法通过任何方法(id,class,css,xpath)在此页面上找到任何内容。
是否有可能某些页面仅能抵抗自动化(如果 这是一个适当的术语)?如果是这样,有什么办法可以告诉哪些页面 无法自动启用?
我将最后一个问题放在方框引号中,因为该问题被标记为重复,但是示例出现在其他位置,但我认为该方框中没有该问题的答案。
答案 0 :(得分:2)
您必须使用/deep/
来传递shadow-root
元素:
body /deep/ #advancedToggle > span
代码如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("chrome://settings")
advanced = driver.find_element_by_css_selector("body /deep/ #advancedToggle > span")
advanced.click()
阴影根元素看起来像这样:
您可以通过按F12
然后找到Elements
标签来找到它。然后在DOM中您将找到shadow-root
。