python - Python/Selenium:点击 cookie 同意
问题描述
我正在尝试使用 selenium 在 python 中接受 cookie 横幅。
到目前为止,我尝试了很多访问“接受并继续”(或德语“Akzeptieren und weiter”)按钮,但我的尝试都没有奏效。
我已经尝试过的一些事情:
driver.get("https://www.spiegel.de/")
time.sleep(5)
try:
driver.find_element_by_css_selector('.sp_choice_type_11').click()
except:
print('css selector failed')
try:
driver.find_element_by_xpath('/html/body/div[2]/div/div/div/div[3]/div[1]/button').click()
except:
print('xpath failed')
try:
driver.find_element_by_class_name('message-component message-button no-children focusable primary-button font-sansUI font-bold sp_choice_type_11 first-focusable-el').click()
except:
print('full class failed')
try:
driver.find_element_by_class_name('message-component').click()
except:
print('one class component failed')
我还能尝试在该网站上接受哪些 cookie?
解决方案
元素Accept and continue
位于Iframe
. 需要对其switch to frame
进行点击操作。尝试如下:
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="path to chromedriver.exe")
driver.maximize_window()
driver.get("https://www.spiegel.de/")
wait = WebDriverWait(driver,30)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@title='Privacy Center']")))
cookie = wait.until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Accept and continue']")))
cookie.click()
推荐阅读
- react-native - 如何在第一次渲染时使 react-native 的 flatlist 组件滚动到底部?
- php - 在表格中添加输入表单
- javascript - Fetch HTML element value from json stingrigy value using Javascript
- angularjs - 直接在 URL 中更新参数值时,AngualrJS 路由不起作用
- python - 努力在 Tensorflow 中创建图形文件
- javascript - Moment js multiple formats
- asp.net-mvc - Remote Validation On Nested ViewModels With __RequestVerificationToken
- c - Printf 和 scanf 不能正常工作?C 编程
- office365 - 创建带有变体的 PowerPoint 模板 - 搜索 Microsoft 的 Variant Creator
- java - ObservableList 返回匹配的子列表