如何使用Selenium Python单击Accept按钮

2024-10-01 15:44:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想单击cookie接受按钮,但它不起作用。有人能帮我吗

https://www.forbes.com/consent/?toURL=https://www.forbes.com/billionaires

driver.get('https://www.forbes.com/consent/toURL=https://www.forbes.com/billionaires') 
driver.implicitly_wait(15) buttonAccept =  driver.find_element_by_class_name("call") driver.implicitly_wait(5)
buttonAccept.click()

如果尝试通过xpath查找元素,则会出现以下错误:

selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“/html/body/div[8]/div[1]/div/div[2]/div[2]/a[1]”

编辑: 我认为iframe有问题,但我不知道如何解决它。我想我需要“司机,切换到车架”


Tags: httpsdivcom元素cookiewwwdriverxpath
2条回答

这不是有效的url。但是你能在你的代码中尝试下面的方法吗

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

driver = webdriver.Chrome()
driver.get('https://www.forbes.com/consent/toURL=https://www.forbes.com/billionaires')
WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Accept']"))).click()

cookie许可管理器弹出窗口中嵌入了一个iframe,因此您需要先切换到它,然后再单击该按钮

    iframe_elem = driver.find_element_by_css_selector('iframe[title="TrustArc Cookie Consent Manager"')
    driver.switch_to.frame(iframe_elem)
    accept_btn = driver.find_element_by_css_selector('.call')
    accept_btn.click()

相关问题 更多 >

    热门问题