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

Python Selenium访问Cookie-同意

方建明
2023-03-14

我正在尝试用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个答案

史经业
2023-03-14

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

 类似资料:
  • 问题内容: 我有一个页面,该页面向中的URL 发出JSONP ajax请求(使用jQuery的功能)。我以为(阅读:假定),其中的资源可以在服务器端访问该域中设置的任何cookie,但事实并非如此? 专门执行ajax调用以访问特定的cookie,进行一些数据操作并返回以cookie值为键的丰富信息集。原始域无法直接访问cookie值,因此我认为ajax请求将保持我需要的状态。 我会忽略关于Cook

  • 问题内容: AngularJS访问cookie的方式是什么?我看到过同时引用Cookie的服务和模块的信息,但没有示例。 有没有,或者没有AngularJS规范方法? 问题答案: 该答案已更新,以反映最新的稳定angularjs版本。一个重要的注意事项是周围有薄薄的包装纸。它们几乎相同,因为它们仅与会话cookie一起使用。虽然,这回答了原始问题,但是您可能还需要考虑其他解决方案,例如使用loca

  • 问题内容: 我正在使用Passport.js来实现对我的Node-App的登录。但是在我的应用程序中,我需要访问用户的ID,目前,我不知道如何实现此目的! 我该如何访问用户ID或自己将其发送到Cookie中? 问题答案: 您应该在策略的配置旁边,在您的应用中引入以下代码: 这样,当您通过身份验证的用户调用该函数时,password会负责将userId存储在cookie中。每当您要访问userId时

  • 问题内容: 我想在cookie中设置一些用户信息并能够在连接时访问它,这可能吗? 问题答案: 由于Cookie始终指向最后登录的用户,因此会导致竞争情况。 请参阅:Socket.IO身份验证 使用connect-redis并将redis用作所有经过身份验证的用户的会话存储。确保通过身份验证将密钥(通常是req.sessionID)发送给客户端。让客户端将此密钥存储在cookie中。 在套接字连接(

  • 问题内容: SimpleDateFormat的Javadoc指出SimpleDateFormat没有同步。 “日期格式不同步。建议为每个线程创建单独的格式实例。如果多个线程同时访问一种格式,则必须在外部进行同步。” 但是,在多线程环境中使用SimpleDateFormat实例的最佳方法是什么。这是我想到的一些选项,我过去曾使用过选项1和2,但是我很想知道是否有更好的选择,或者这些选项中的哪一个可以

  • 问题内容: 我用python与selenium结合编写了一个脚本,以从其着陆页中抓取不同文章的链接,并通过跟踪引向其内页的url最终获得每个文章的标题。尽管我在这里解析的内容是静态内容,但我还是使用了selenium来查看它在多处理中的工作方式。 但是,我的意图是使用多处理进行抓取。到目前为止,我知道selenium不支持多处理,但似乎我错了。 我的问题:当使用多处理运行selenium时,如何减