如何在Selenium Chrome中禁用Cookies?解决chromedriver路径报错问题
我来帮你搞定这两个问题,先拆解你代码里的问题,再给你修正后的完整方案:
一、解决chromedriver路径报错
你代码里犯了一个小失误:重复实例化了WebDriver对象。第一次你传了chromedriver的路径,但没加禁用Cookie的配置;第二次加了配置,却没传路径,导致程序找不到chromedriver。
正确的做法是把ChromeOptions配置和chromedriver路径一次性传给WebDriver的构造函数,不要分开实例化。
二、正确禁用Chrome的Cookies
你之前用的配置项"profile.default_content_settings.cookies": 2已经过时了,当前有效的配置键是"profile.default_content_setting_values.cookies": 2,把这个放在prefs里就能禁用所有Cookie。
如果需要更彻底的禁用(比如阻止第三方Cookie),还可以额外添加配置,但基础禁用用上面的配置就足够。
修正后的完整代码
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time # 1. 配置ChromeOptions,禁用Cookies chrome_options = webdriver.ChromeOptions() chrome_options.add_experimental_option( "prefs", {"profile.default_content_setting_values.cookies": 2} # 正确的禁用Cookie配置 ) # 2. 传入chromedriver路径和配置,实例化driver PATH = r"C:\Users\amete\Documents\chromedriver.exe" driver = webdriver.Chrome(executable_path=PATH, chrome_options=chrome_options) # 后续操作(顺便修正了Google搜索框的id,原"input"已失效) driver.get("https://www.google.com/") print(driver.title) search = driver.find_element_by_id("APjFqb") search.send_keys("One Piece") search.send_keys(Keys.RETURN) time.sleep(5) driver.quit()
额外适配说明
- 如果你用的是Selenium 4.x版本,
chrome_options参数已更名为options,实例化代码要改成:driver = webdriver.Chrome(executable_path=PATH, options=chrome_options) - 另外,
find_element_by_id这类写法在Selenium 4.x中已标记为过时,推荐使用:from selenium.webdriver.common.by import By search = driver.find_element(By.ID, "APjFqb")
内容的提问来源于stack exchange,提问作者ametefe
相关产品推荐
相关产品推荐

