提问者:小点点

Python Selenium访问Cookie-同意


我正在尝试用Python和selenium刮这个网页,但是当我尝试为cookies同意点击“OK”按钮时,我找不到它:显示同意对话框的图片

https://www.immonet.de/

此操作:driver.find_element_by_css_selector(“#usercentrics-root”)

但当我尝试通过driver.find_element_by_css_selector(“#uc-center-container>footer>div>div>div>div>Button.sc-gsdjrp.cxarzu”)选择“确定”按钮时,我得到一个错误:

消息:没有这样的元素:找不到元素:{“method”:“CSS Selector”,“Selector”:“#uc-center-container>footer>div>div>div>button.sc-gsdjrp.cxarzu”}

我已经尝试访问这个I-framedriver.switch_to.frame(“uc-cross-domain-bridge”),但是我没有得到任何可以使用的结果元素。

如何访问“Cookie-Consultension-”对话框

编辑:在@curtis的帮助下,我发现这是隐藏在一个阴影DOM下的。使用以下工具:

def expand_shadow_element(element):
  shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
  return shadow_root

shadow_section = expand_shadow_element(driver.find_element_by_css_selector("#usercentrics-root"))
shadow_section.find_element_by_css_selector("#uc-center-container > footer > div > div > div > button.sc-gsDJrp.cXArZu").click()

共1个答案

匿名用户

看起来cookie按钮在一个阴影根下。查看如何获得这些元素:https://medium.com/rate-engineering/a-guide-to-working-with-shadow-dom-using-Selenium-b124992559f