如何使用SeleniumPython点击Accept按钮



我想点击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.com.mon.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{quot;方法":"xpath","选择器":"/html/body/div[8]/div[1]/div/div[2]/div[2]/a[1]quot;}

编辑:我认为iframe有问题,但我不知道如何解决。我认为我需要"driver.switch_to_frame";

这不是一个有效的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同意管理器弹出窗口中嵌入了一个iframes,因此您需要先切换到它,然后才能单击按钮。

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()

最新更新