python selenium-webdriver 通过cookie登陆
2022/1/17 17:07:28
本文主要是介绍python selenium-webdriver 通过cookie登陆,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
介绍一下如何利用cookie进行登陆系统,这里使用到了request模块,我们首先利用request模块,请求登陆地址进行登陆,登陆成功以后获取cookie值,然后再通过add_cookie添加到浏览器,使系统处于登陆状态。这里需要注意的是request请求返回的cookie的格式不能直接传入add_cookie方法,所以这里需要进行转换。
#这里需要注意区别,按住格式进行转换#request 请求返回cookie的格式{'PHPSESSID': 'alvrh1i2h7joj2il2jn3sh7up1', 'uid': '16'} #selenium方法需要的cookie的格式{'value': 'alvrh1i2h7joj2il2jn3sh7up1', 'httpOnly': False, 'domain': 'yingxiao.chewumi.com', 'name': 'PHPSESSID', 'secure': False, 'path': '/'}
下面看一下例子,来通过cookie登陆然后跳转到圈子详情页面
#-*- coding:utf-8 -*- import time import requestsfrom selenium import webdriver def get_system_cookies(url,account,password): '''通过request 登陆系统,获取cookie''' cookiesList = [] data = {"username":account,"passwd":password} roomSession = requests.Session() roomSession.post(url,data=data) loadCookies = requests.utils.dict_from_cookiejar(roomSession.cookies) for cookieName,cookieValue in loadCookies.items(): cookies = {} cookies['name'] = cookieName cookies['value'] = cookieValue cookiesList.append(cookies) return cookiesList def is_login_status_succeed(driver): '''判断是否登陆状态,非登陆状态,通过cookie登陆''' loginUrl = 'http://yingxiao.chewumi.com/login.php' #登陆地址 account = 'account' #账号 password = 'password' #密码 driver.get('http://yingxiao.chewumi.com/index.php') #测试是否为登陆状态 if '请登录' in driver.page_source: #判断是否登陆为登陆页面 for cookie in get_system_cookies(loginUrl,account,password): #如果登陆界面获取cookie driver.add_cookie(cookie) #添加cookie ,通过Cookie登陆 return driver def request_circle_details(driver,requestUrl): '''测试跳转圈子详情''' is_login_status_succeed(driver) driver.get(requestUrl) verifyField = driver.find_element_by_xpath('/html/body/div/div/div[2]/h1').text #获取页面标题 try: assert verifyField == '圈子详情' return '测试通过' except AssertionError as e: return '测试未通过' '''测试下效果''' requestUrl = 'http://yingxiao.chewumi.com/list.php?page=1' driver = webdriver.Chrome() driver.maximize_window() print (request_circle_details(driver,requestUrl)) driver.get(requestUrl) time.sleep(2) driver.quit()
通过结果显示我们没有操作操作登陆状态,直接进入了圈子详情到页面。
这篇关于python selenium-webdriver 通过cookie登陆的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门