本文转自测试人社区
问题部分web网站无法只通过植入cookie进行登录
原因现在很多的前端鉴权逻辑不止写入在cookie中,部分公司会写入到localstorage。所以只有cookie无法完成鉴权,必须同时植入localstorage
代码import timeimport yamlfrom selenium import webdriver# from seleniumrequests import Chromeclass TestCookieLogin: def setup_class(self): # self.drvier = Chrome() self.drvier = webdriver.Chrome() def test_get_cookies(self): # 1. 访问企业微信主页/登录页面 self.drvier.get("url") # 2. 等待20s,人工扫码操作 time.sleep(30) # 3. 等成功登陆之后,再去获取cookie信息 cookie = self.drvier.get_cookies() # 4. 将cookie存入一个可持久存储的地方,文件 # 打开文件的时候添加写入权限 with open("cookie.yaml", "w") as f: # 第一个参数是要写入的数据 yaml.safe_dump(cookie, f) localstorage = self.drvier.execute_script("return window.localStorage") with open("local.yaml", "w") as f: # 第一个参数是要写入的数据 yaml.safe_dump(localstorage, f) def test_add_cookie(self): # 1. 访问企业微信主页面 self.drvier.get("url") # 2. 定义cookie,cookie信息从已经写入的cookie文件中获取 cookie = yaml.safe_load(open("cookie.yaml")) localstorage = yaml.safe_load(open("local.yaml")) # 3. 植入cookie for c in cookie: self.drvier.add_cookie(c) time.sleep(3) for key, value in localstorage.items(): self.drvier.execute_script("localStorage.setItem(arguments[0],arguments[1]);", key, value) time.sleep(3) self.drvier.refresh()