我知道有类似的问题,但其他人的答案似乎没有解决我的问题。
我可以打开 youtube 并关闭登录弹出窗口,但是我似乎无法同意 google 弹出窗口的 cookie。我发布类似问题的原因是常见的“driver.implicitly_wait(10)”解决方案似乎只适用于登录弹出窗口。
这表明出于某种原因,按钮的 xpath 仅适用于 youtube 弹出窗口,而不适用于 google 弹出窗口。
我的代码:
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver=webdriver.Chrome(executable_path="C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.implicitly_wait(10)
driver.get("https://www.youtube.com/watch?v=nYh-n7EOtMA")
driver.find_element_by_xpath("//*[@id='dismiss-button']").click()
driver.implicitly_wait(10)
driver.find_element_by_xpath("//*[@id='introAgreeButton']").click()
我也相信这也是复制按钮 xpath 的正确代码。
对于任何可能的解决方案,我真的很感激,如果这与之前的问题太相似,我真的很抱歉,我真的很难过。
答案 0 :(得分:0)
driver.switch_to.frame("iframe")
driver.find_element_by_xpath("//*[@id='introAgreeButton']").click()
同意按钮位于 iframe 内,只需先切换到它,因为您使用的是隐式等待,因此您不必使用任何其他等待
现在,如果您想与 iframe 之外的任何元素进行交互,请使用:
driver.switch_to.default_content()
在尝试查找该元素或与该元素交互之前