RF,RobotFramwork使用Cookie获取验证码,登录账户
标题:RobotFramwork使用Cookie获取验证码,登录账户
环境:办公测试环境。
背景:循环执行发布任务,需要保持长期登录状态,后台当前是随机验证码,无法登录。
方法:1.通过技术手段,将随机验证码设置为123456,方便测试。2.通过获取cookie状态,保持长期登录。
步骤:手动登录一次,打印出日志记录,通过日志log信息找到打印的cookie信息,截取前后两部分,获取登录状态,goto已登录状态的页面,保持登录成功
命令:
OperatingSystem.Run taskkill \ /F \ /im chromedriver.exe #清理缓存
open browser http://op.yidai.co chrome #打开浏览器
maximize browser window #浏览器窗口最大化
sleep 50 #手动登录一次,打印出日志记录,通过日志log信息找到打印的cookie信息,截取前后两部分,获取登录状态,goto已登录状态的页面,保持登录成功
${ww}= get cookies # 获取cookie的值
log ${ww} #打印cookie的值
add cookie 6ePf_2132_authCode a5fbe88QO4pKsD9EumTBfm5GtR7NkxxNqvezQEnmY2N8 #添加cookie值
add cookie 6ePf_2132_p2poperation 8f9aO%2F%2BUKNbTYWktz3kWFsQnJRZvQB02xK%2BlYDrfhAtUiEgw4uTyU5cm9%2B%2Bygbdnt6O9j%2FuvnwDC3HIMTjexLNfKRwk8KTWtsXHY8EWyNZFMI5sdn6p7QX4ECPP%2Fh%2FaBFnsftfRJwOPapLT1 #添加cookie值
goto http://op.yidai.co/home/ 载入已登录的页面,保持登录状态
贴图:
备注:
1.问题一,报错“no browser is open”,火狐浏览器和IE浏览器,即使加了驱动配置文件geckodriver.exe/geckodriver.exe/IEDriverServer.exe到D:\Python27目录下,执行脚本时,仍旧无法打开浏览器执行命令,遂用chrome浏览器代替可解决。
2.问题二,报错“webdriverexception”,驱动版本号和chrome版本映射不对应。先cmd-pip list,然后升级selenium版本-pip install -U selenium==3.0.2,还是报错;百度版本映射表-http://blog.****.net/huilan_same/article/details/51896672,下载对应的驱动版本-http://chromedriver.storage.googleapis.com/index.html,导入到D:\Python27目录下,重新执行脚本,流程正确。
思路来自小七大神,给小七点赞,此处仅为备份以后需要时查看。