ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python selenium-webdriver 通过cookie登陆

2022-01-17 15:02:52  阅读:208  来源: 互联网

标签:webdriver cookies get python selenium driver request 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()

 

通过结果显示我们没有操作操作登陆状态,直接进入了圈子详情到页面。

标签:webdriver,cookies,get,python,selenium,driver,request,cookie,登陆
来源: https://www.cnblogs.com/zhupeijun0909/p/15813481.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有