在python中用硒绕过youtube帐户弹出窗口

问题描述

enter image description here

我尝试通过以下方式克服此伪弹出窗口:

webdriverwait(driver,10).until(EC.element_to_be_clickable((By.ID,'introAgreeButton'))).click()
webdriverwait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'//*[@id="introAgreeButton"]'))).click()

所描述的方法似乎都不起作用。 有什么办法可以绕过这个烦人的弹出窗口?

解决方法

我遇到过同样的问题。解决办法是:

try:
    driver._switch_to.frame("iframe")
    aggreeButton = driver.find_element_by_id("introAgreeButton")
    aggreeButton.click()
except:
    print("failed")

将当前帧移出到页面级别

driver.switch_to.default_content()
,

当我导航到YouTube时,无法弹出该弹出窗口;但是,我怀疑这是一个对话框或警报。如果使用Elements(F12)检查Chrome Dev Tools标签,那应该告诉您。然后,使用find_element的{​​{1}}来点击“我同意”

已更新-将XPATH修改为iron-overlay-backdrop标签

xpath

此后,等待模式/对话框消失或从driver.find_element(By.XPATH,"//iron-overlay-backdrop[@class='opened']//button[text()='I agree']").click() 中删除,然后继续做您正在做的事情