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是没问题的,有界面时是正常的

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

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

我从CSDN技能树中找了一些相关资料给你, 你可以看下: