python selenium-webdriver 通过cookie登陆(十一)

发布时间:2017-7-1 11:17:38编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"python selenium-webdriver 通过cookie登陆(十一) ",主要涉及到python selenium-webdriver 通过cookie登陆(十一) 方面的内容,对于python selenium-webdriver 通过cookie登陆(十一) 感兴趣的同学可以参考一下。

python selenium-webdriver 通过cookie登陆(十一)

上节介绍了浏览器的常用方法,涉及到了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 timeimport requestsfrom selenium import webdriverdef 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 cookiesListdef 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 driverdef 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()

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


上一篇:Linux进程组和会话
下一篇:jQuery 效果 - 隐藏和显示

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款