码迷,mamicode.com
首页 > 其他好文 > 详细

Selenium调试时免登陆的2种方法

时间:2020-05-07 15:51:59      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:inf   driver   公众号   输入   sele   请求   分享   注意   session   

Selenium编写用例的时候,需要不断的运行调试debug,但正常情况会每次重新打开一个Chrome运行,是全新的浏览器,没有任何历史记录和Cookie。如果你要完全运行所有测试用例,包括登陆,那这样很好,如果你不想运行所有用例或是在调试,就很麻烦,下面介绍2个免登陆的方法。

方法一:通过加cookies免登陆
首先你要了解你的系统登陆后都会有哪些Cookie或session,这个最好不要猜不要自己试,直接问开发最对最直接。以百度为例,首先手动登陆,然后刷新页面,看第一个请求的请求头的Cookie,感觉如图圈起来的比较像(这个也是我瞎猜的哈)。
技术图片


输入以下代码运行:

from selenium import webdriver

chrome_driver = r"D:\code\python\selenium_ui_auto\driver\chromedriver.exe" # 你driver的路径
driver = webdriver.Chrome(chrome_driver)

driver.get(http://www.baidu.com/)
# 添加Cookie
driver.add_cookie({name: BAIDUID, value: 67F332038A56CC0A9B109})
driver.add_cookie({name: BIDUPSID, value: 67F332038A56CC0A9B109})
driver.add_cookie({name: H_PS_PSSID, value: 1423_3199_31428_31341_31270_31163_31472})
driver.add_cookie({name: BDUSS, value: hpRAAAAAAAAAAAAAAAAAAAAAAAJt4s16beLNefm})
#再次打开页面刷新Cookie
driver.get(http://www.baidu.com/)

 

运行后,可以看到已经是登陆状态了。


方法二:设置用户数据目录免登陆
正常每次运行Selenium打开Chrome,数据目录都是临时,退出后就清了。那我们可以设置一个用户数据目录,这样以后selenium打开的Chrome,就跟我们正常使用打开的Chrome一样,是有历史数据的了。

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(r--user-data-dir=D:\ChromeUserData) # 设置用户文件夹,可免登陆
chrome_driver = r"D:\code\python\selenium_ui_auto\driver\chromedriver.exe" # 你driver的路径
driver = webdriver.Chrome(chrome_driver, options=chrome_options)

 

通过以上代码打开浏览器,我们先手动登陆一下,如果有记住密码之类的就点选上。
关闭浏览器,再次运行以上代码,就是已登陆的状态了


注意,Cookie和Session都是有有效期的,所以一定时间后还是需要再次登陆的。

 

---------------------------------------------------------------------------------

关注微信公众号(测试工程师小站)即可在手机上查阅,并可接收更多测试分享,发送【测试资料】更可获取百G测试教程~

技术图片

Selenium调试时免登陆的2种方法

标签:inf   driver   公众号   输入   sele   请求   分享   注意   session   

原文地址:https://www.cnblogs.com/songzhenhua/p/12842919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!