下面这个是用于获取 cookie 的代码,还有添加 cookie 的代码
#获取cookie,用于绕过滑块验证码
def get_cookie(self):
self.driver.get(env_url)
time.sleep(30)
cookie = self.driver.get_cookies()
with open("../config/cookie.yml","w") as f:
yaml.safe_dump(cookie,f)
#添加cookie,用于绕过滑块验证码
def add_cookie(self,url):
self.driver.get(env_url)
cookies = yaml.safe_load(open("../config/cookie.yml"))
for cookie in cookies:
self.driver.add_cookie(cookie)
self.driver.get(url)
time.sleep(10)
url = 'http://xxx/supply/supplyHomeUrl' driver = webdriver.Chrome() driver.maximize_window() b = AddBasicPolicyPage(driver) # b.get_cookie() b.wait(2) b.add_cookie(b.url) b.add_basic_policy() b.quit()
我们的平台有多个系统,登录的时候会有滑块验证码,我想通过 cookie 绕过验证码,在第一个系统使用时正常能绕过
在另外一个系统使用这种方式就出现了问题

10F
楼主的做法是将 token 先存到 cookie 里,前端能拿到 token 的情况下就认为是登陆了,就不会跳转到验证页面,最后说缺了 Ttid 字段,也是接口要用到,前端取不到这个字段就判断当前是处于未登陆状态,就跳转到验证页面。冷知识,其实部分公司会将用户信息字段放到 token 里,你去解析 token 可能会有惊喜
9F
实现原理能说下吗?活着看看实际的代码?add_basic_policy 这个?
8F
用 cv2 算一下距离,滑一下就行了
7F
不是,系统有个角色权限进行配置的
6F
是通过获取到 cookie,不用输入验证码,直接登录
5F
看了下 console 是有报错,原来是报错的这个系统,除了要获取登录账号的 cookie,还有获取 Ttid,是我们系统的一个识别登录用户身份的一个 ID,看来通过 cookie 绕过不太可行,我只能取找开发把滑块验证码注释了
4F
多个系统的 cookies 是共用的吗
3F
你的绕过验证码的意思是,不显示验证码,还是显示验证码,即使不输入验证码或是输入错误的也能登录?
2F
看下 console 有没有报错,也问下开发是不是有 cookies 之外的鉴权机制?
1F
是这种滑块验证码