You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Selenium无法获取页面全部Cookie值的问题咨询

Selenium无法获取页面全部Cookie值的问题咨询

各位好,我最近在用Selenium做网页自动化时碰到了个棘手的问题:没法获取到页面的全部Cookie值。先贴出我目前写的代码片段,麻烦大家帮我排查下哪里可能出问题了?

import logging
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

try:
    # Set Chrome options to headless
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--disable-gpu")
    chrome_options.add_argument("--window-size=1920,1200")
    chrome_options.add_argument("--ignore-certificate-errors")
    chrome_options.add_argument("--disable-extensions")
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--disable-dev-shm-usage")

    # Initialize the Chrome driver
    logger.info("Initializing Chrome WebDriver")
    service = Service(ChromeDriverManager().install())
    driver = webdriver.Chrome(service=service, options=chrome_options)
    
    # 后续访问目标页面、尝试获取Cookie的逻辑
    driver.get("我的目标页面URL")
    # 试过等待页面完全加载,甚至用了WebDriverWait等待特定元素
    cookies = driver.get_cookies()
    logger.info(f"当前获取到的Cookie数量:{len(cookies)}")
except Exception as e:
    logger.error(f"执行过程出错:{str(e)}")
finally:
    if 'driver' in locals():
        driver.quit()

实际情况是,我调用driver.get_cookies()拿到的Cookie数量比浏览器开发者工具里看到的少一大截,尤其是和用户登录状态相关的Cookie完全没获取到。我已经确认页面已经加载完成,也试过调整等待策略,但结果还是一样。

有没有大佬能帮忙分析下原因?比如是不是我的Chrome配置有遗漏,还是Selenium本身获取Cookie的机制存在什么限制?

备注:内容来源于stack exchange,提问作者Urten

火山引擎 最新活动