afrcmg 2022-08-30 12:48 采纳率: 87.5%
浏览 69
已结题

selenium隐藏浏览器窗口时的cookie问题

我想用selenium自动去观看学习视频,整体已经做完了。

但是我想加个功能,就是能够隐藏浏览器页面的同时,观看视频

经过搜索,我确定了隐藏的方法,就是:

option.add_argument('--headless')
option.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=option)

确实可以隐藏,但是问题是不能自动通过已经保存的cookie登陆了。

代码大概是这样的:

option.add_argument('--headless')
option.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=option)
driver.delete_all_cookies()
# 添加cookie
with open(‘cookies.txt', 'r') as f: 
    cookies_list = json.load(f)
    for cookie in cookies_list:
        if isinstance(cookie.get('expiry'), float):
            cookie['expiry'] = int(cookie['expiry'])
        driver.add_cookie(cookie)
    driver.refresh()

按理说,到此为止,浏览器会进入已经登陆的界面
我在显示浏览器(就是把前2行代码删掉)时候是正常的,也证明了这一点。

但是,如果把浏览器隐藏,就不能进入已经登陆的界面

我用driver.page_source看了下,此时的浏览器确实没有登陆,而且处于一个以前没见过的页面,里面有让输入账号、密码的地方,但是和我普通点到的输入页面不同

我想知道这个问题怎么解决,还是说,使用隐藏界面方式,不能使用cookie?

再次强调,cookie是没问题的,有界面时是正常的

  • 写回答

2条回答 默认 最新

  • honestman_ 2022-08-30 13:08
    关注

    加上一个参数就好user-data-dir,这里举个例子(然后按照如下所示路径找到自己的User Data,把这个路径按照如下所示的代码加入参数):

    option.add_argument(r"user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data")
    
    评论

报告相同问题?

问题事件

  • 系统已结题 9月7日
  • 创建了问题 8月30日

悬赏问题

  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥50 如何将脑的图像投影到颅骨上
  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
  • ¥15 netcore使用PuppeteerSharp截图
  • ¥20 这张图页头,页脚具体代码该怎么写?
  • ¥15 关于#sql#的问题,请各位专家解答!
  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111