一、原因
翻譯一下,就是selenium默認域名是data:,cookies中自帶域名,發現當前域名不包含在cookies中時,則cookies設置失敗
個人理解:在加載cookies之前需要先訪問頁面,打開頁面跳轉登錄頁面,登錄之后才能到其他頁面,cookies就是模擬的登錄,所以在加載cookies之前需要先訪問一下頁面
二、以企業微信為例
def test_weixin(self):
# 先打開企業微信的頁面,才能傳cookies進去
self.driver.get("https://work.weixin.qq.com/")
with open("cookies.txt", "r") as f:
# 從文件獲取cookies,並轉化成list對象
cookies: List[Dict] = json.load(f)
# 遍歷每一條cookies,把登錄的cookies傳入到企業微信中
for cookie in cookies:
# 由於selenium的cookies不支持expiry,所以需要去掉
if "expiry" in cookie.keys():
# dict支持pop的刪除函數
cookie.pop("expiry")
# 添加cookies
self.driver.add_cookie(cookie)
# 再打開企業微信登錄后的頁面
self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
sleep(5)
要打開登錄后的頁面,首先需要打開企業微信的頁面,這時傳送的domain才是全的