【问题标题】:Chrome stores cookies too late local in profile pathChrome 在配置文件路径中本地存储 cookie 太晚了
【发布时间】:2021-04-29 05:27:07
【问题描述】:
由于无法通过 webdriver.get_cookies() 获取所有 cookie(相同域和第 3 方 cookie),我决定读取 Cookies 文件 - 该文件以 SQLite 形式存储在用户配置文件路径中。
但奇怪的是,我刚刚看到 cookie 没有实时保存到这个文件中。我也不确定cookies的存储时间。我必须等待大约 10 秒钟,然后我才能在那里找到所有 cookie。
是否知道如何实时读取 selenium 网络驱动程序的所有 cookie?
【问题讨论】:
标签:
python
selenium
google-chrome
selenium-webdriver
cookies
【解决方案1】:
理想情况下,在收集和打印 cookie 之前,您需要为 visible 元素诱导 visibility_of_element_located() 的 WebDriverWait,然后按如下方式收集 cookies:
webdriver.get(url)
WebDriverWait(webdriver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "element_css")))
print(webdriver.get_cookies())
或者为 interactive 元素诱导WebDriverWait 为element_to_be_clickable(),然后按如下方式收集cookies:
webdriver.get(url)
WebDriverWait(webdriver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "element_css")))
print(webdriver.get_cookies())
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC