【UI测试】selenium加载cookies报错[selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain]解决方案

一、原因

翻译一下,就是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才是全的
原文地址:https://www.cnblogs.com/ricebug2/p/14044621.html