一、问题来源
前两天有个人问我,他的项目也是web需要二维码登录,但是手机端扫码之后需要点击二次确定才能进入。按照我的方法第一次手动登录成功后,第二次无法自动化登录,怎么解决这个问题。
二、问题思考
从一般设计来说,Web端维持登录和下次自动登录,状态或者关键数据一定保存在自己的本地数据库内。手机端的二次确认只是手机端的安全设置防止误扫描,和Web端下一次自动登录没有关系。然后根据他的问题说明,我询问了一下二维码的扫描界面和登录成功后的网页是不是一个地址。结果发现,
二维码的页面地址是这样的:
https://xxx.com/login?redirect=true
主页面地址是这样的:
https://xxx.com/
猜测前端代码对地址进行了判断,或者在get请求中进行了判断,即使你将本地数据全部数据加载进去了,但刷新页面时判定地址不对依然显示二维码页面。
三、问题解决
知道问题以后就好解决问题了,在之前代码的基础上,当你填入所有的本地数据后,重新get一下主页的url就可以正确跳转,一行代码可以解决问题。
# 正确设置localstorage的key和value
for key, value in localstorage_data.items():
storage.set(key, value)
# get一下正确的url
driver.get(url=主页正确url)
四、问题总结
永不不知道研发可能会在哪些位置加奇怪的判断,通过经验可以解决一些问题,大部分的时候需要不断尝试或询问写这段代码的人。
好好学习,天天向上