在 Python 上使用 Selenium 无法在弹出窗口 Window 上定位元素

Can't locate element on Pop-Up Window using Selenium on Python

我想用这个 url 从 Duden 网页上抓取一些元素:https://www.duden.de/rechtschreibung/aussuchen。 当我手动查找页面时,没有出现弹出窗口,但是当我在 python 上使用 selenium 时,出现了:image of pop up

我已经尝试过很多方法,例如阻止一般的弹出窗口,或尝试点击接受按钮。所有这些都不起作用。

我试图找到框架的一个元素并打印一条语句,然后查看它是否可以找到这些元素,但这也不起作用。

有谁知道为什么会这样或者我可以尝试更多吗?

这些是我尝试过的一些东西:

我尝试了各种组合,但都不行。

页面元素的结构如下: structure of page_1 structure of page_2

希望我能解释正确,也许有人能帮助我。

每次启动网络驱动程序时,您都在使用新的临时配置文件。该个人资料没有 cookie,因此网站将其视为需要接受 cookie 消息的新用户。

我查看了您的网站并关闭了您需要切换 iframe 的消息。您已经接近您的解决方案,可能只是需要一种不同的方法来选择框架...

这段代码对我有用:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.duden.de/rechtschreibung/aussuchen")

iframe = driver.find_element_by_xpath("//iframe[contains(@id,'sp_message_iframe')]")
driver.switch_to.frame(iframe)
cookieAccpet = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='AKZEPTIEREN']")))
cookieAccpet.click()

driver.switch_to.default_content()

记得在最后使用 driver.switch_to.default_content() 切换回默认帧,然后您可以继续您的脚本。