在Python中使用Selenium处理“ Accept Cookies”弹出窗口

雅各布·布尔

我一直在尝试用硒刮擦这个房地产网站的某些信息。但是,当我访问网站时,我需要接受cookie才能继续。这只会在漫游器访问网站时发生,而不会在我手动访问时发生。当我尝试通过xpath或id查找对应的元素时,如我在手动检查页面时发现的那样,出现以下错误。

selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // * [@ id =” uc-btn-accept-banner“] “}

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC



PATH = "/usr/bin/chromedriver"
driver = webdriver.Chrome(PATH)

driver.get("https://www.immoweb.be/en/search/house/for-sale?countries=BE&page=1&orderBy=relevance")
driver.find_element_by_xpath('//*[@id="uc-btn-accept-banner"]').click()

有谁知道如何解决这个问题?为什么找不到元素?

下面是接受cookie弹出窗口的图像。

在此处输入图片说明

这是与按钮“继续浏览”相对应的HTML。XPATH如上。

<button aria-label="Keep browsing" id="uc-btn-accept-banner" class="uc-btn-new  uc-btn-accept">Keep browsing
          <span id="uc-optin-timer-display"></span></button>
爱德华兹

你很亲密!

如果您在新的浏览器中打开页面,则会注意到页面已完全加载,然后,稍后会出现弹出窗口。

selenium中的默认等待策略只是页面已加载页面加载和显示出现之间的绘制延迟导致脚本失败。

您有两个很好的同步选项。

1 /包括一个隐式等待您的驱动程序。每个脚本执行一次,并且会影响所有对象。这会在引发任何错误之前等待10秒钟,或者在就绪后继续:

PATH = "/usr/bin/chromedriver"
driver = webdriver.Chrome(PATH)
driver.implicitly_wait(10)

driver.get("https://www.immoweb.be/en/search/house/for-sale?countries=BE&page=1&orderBy=relevance")
driver.find_element_by_xpath('//*[@id="uc-btn-accept-banner"]').click()

2 /仅对对象执行显式等待:

PATH = "/usr/bin/chromedriver"
driver = webdriver.Chrome(PATH)

driver.get("https://www.immoweb.be/en/search/house/for-sale?countries=BE&page=1&orderBy=relevance")
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,'//*[@id="uc-btn-accept-banner"]'))).click()

有关等待策略的更多信息在这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Java处理Selenium WebDriver中的弹出窗口

来自分类Dev

如何在Java中使用Selenium Webdriver处理弹出窗口

来自分类Dev

在正当画廊中使用宏伟的弹出窗口

来自分类Dev

硒打开弹出窗口[Python]

来自分类Dev

在JavaFX中使用ProgressBar显示弹出窗口

来自分类Dev

使用C#处理Selenium中的窗口弹出窗口

来自分类Dev

如何处理Selenium Python中发生的弹出窗口

来自分类Dev

python selenium,克服javascript弹出窗口

来自分类Dev

Selenium Webdriver:如何绕过Google“ accept-cookies”对话框

来自分类Dev

处理硒python中的弹出窗口

来自分类Dev

使用python关闭Selenium中的弹出窗口

来自分类Dev

使用IE浏览时处理弹出窗口

来自分类Dev

使用JavaScript阻止弹出窗口弹出

来自分类Dev

使用Java的模态弹出窗口

来自分类Dev

使用jQuery的简单弹出窗口

来自分类Dev

在引导程序中使用按钮弹出窗口

来自分类Dev

在Ionic 2中使用弹出窗口

来自分类Dev

Python Selenium使用相同的窗口,而不是弹出3个窗口?

来自分类Dev

Python,tkinter弹出窗口错误

来自分类Dev

使用 selenium webdriver 在弹出窗口中显示处理警报

来自分类Dev

在 Selenium 中处理弹出窗口

来自分类Dev

使用 Selenium 和 Python 在弹出窗口中登录

来自分类Dev

在Selenium中,如何使用python在弹出窗口中登录网站?

来自分类Dev

Selenium/Python Jquery 弹出窗口

来自分类Dev

消失的 Python 通知弹出窗口

来自分类Dev

使用 AppleScript 关闭弹出窗口

来自分类Dev

无法使用 MailChimp 弹出窗口

来自分类Dev

使用 Auto IT 脚本处理基于窗口的弹出窗口后,Selenium 脚本失败

来自分类Dev

如何使用 python selenium 打开弹出窗口 (PDF)

Related 相关文章

热门标签

归档