自动化测试基础篇--Selenium cookie操作
摘自https://www.cnblogs.com/sanzangTst/p/8376471.html
在验证浏览器中cookie是否正确时,有时基于真实cookie的测试是无法通过白盒和集成测试进行的。Webdriver提供了操作Cookie的相关方法,可以读取,添加和删除cookie信息。
文本webdriver操作cookie()的方法:
get_cookie(): 获得所有cookie信息。
get_cookie(name):返回字典的key为name的cookie
add_cookie(cookie_dict):添加cookie。“cookie_dict”指字典对象,必须有name和value值。
delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称。“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”
delete_all_cookies():删除所有cookie信息。
一、获取cookie
二、添加cookie
三、使用cookie绕开登录验证码
通过向浏览器中添加cookie可以绕过登录的验证码。在登录的时候勾选记住密码,当下次访问该网站时就默认处于登录状态了。记住密码功能其实就记录了浏览器的cookie中。通过webdriver来操作浏览器的cookie,可以通过add_cookie()方法将用户名密码写入浏览器cookie,当再次访问时,服务器将直接读取浏览器的cookie进行登录。
四、参考代码
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : chen # @File : cookie.py # @Software: PyCharm from selenium import webdriver import time url = 'http://192.168.20.213:xxxx/manager/application' driver = webdriver.Firefox() driver.get(url) driver.implicitly_wait(30) cookie1 = { 'domain':'192.168.20.213', 'name':'JSESSIONID', 'value':'5D28C34424E58D1EA4E6AB65870AD432', # u'expiry':u'9223372036854776000', 'path':'/manager/', 'secure':False, 'httpOnly': True} cookie2 = { 'domain':'192.168.20.213', 'name':'_jfinal_captcha', 'value':u'd0c8954d454cf4be6968d9cda0c4cecc', # u'expiry':u'9223372036854776000', 'path':'/', 'secure':False, 'httpOnly': True} cookie3 = { 'domain':'192.168.20.213', 'name':'HiPaySessionId', 'value':'dlkW4jQ2pH5UiQPHH9t7izTr1r0vibgM1Suw8g2A5zEN+AAsd4JgKvUwm4+QMtuV4fRx6UNTiC0XscAoIWgNX2hTTbudrbPNqPD9zNP94alMqofF31U+lWYi8FBON2O7RWQN2j3106Zft1oTL8LLcXBjHiddYA9JU6l0P5arkxWVqnW512Cg7MARH9mf5UT3HKveqaXJuFbKJiE/a9OCzaexFz+eRVCAG68UO3ffOr9kQpf1pOBAFLUaKULIDetl', # u'expiry':u'1513909626', 'path':'/', 'secure':False, 'httpOnly': True} driver.add_cookie(cookie1) driver.add_cookie(cookie2) driver.add_cookie(cookie3) time.sleep(3) driver.refresh() time.sleep(5) driver.quit()