Python+selenium 之操作Cookie
在验证浏览器中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代码如下:
1 from selenium import webdriver 2 driver = webdriver.Firefox() 3 # driver.get("http://member.rltxtest.xyz/login/login.html") 4 driver.get("http://www.youdao.com") 5 6 # 获取cookie信息 7 cookies = driver.get_cookies() 8 # 打印获取的cookies信息 9 print(cookies) 10 11 driver.quit()
添加cookie的代码:
1 from selenium import webdriver 2 3 driver = webdriver.Firefox () 4 # driver.get("http://member.rltxtest.xyz/login/login.html") 5 driver.get ("http://www.youdao.com") 6 # 向cookie中name和value中添加回话信息 7 driver.add_cookie ({'name': 'key-aaaaaaa'}, {'value': 'value-bbbbb'}) 8 9 # 遍历cookie中name和value信息并打印对应的信息,并包括添加对应的信息 10 for cookie in driver.get_cookies (): 11 print("%s->%s" % (cookie['name'], cookie['value'])) 12 13 driver.quit ()
记录cookie
通过向浏览器中添加cookie可以绕过登录的验证码。在登录的时候勾选记住密码,当下次访问该网站时就默认处于登录状态了。记住密码功能其实就记录了浏览器的cookie中。通过webdriver来操作浏览器的cookie,可以通过add_cookie()方法将用户名密码写入浏览器cookie,当再次访问时,服务器将直接读取浏览器的cookie进行登录。
1 from selenium import webdriver 2 import time 3 4 driver = webdriver.Firefox() 5 driver.get("http://192.168.1.51/oneCard/login") 6 #将用户名密码写入浏览器cookie中 7 driver.add_cookie({'name':'username','value':'super'}) 8 driver.add_cookie({'name':'password','value':'asd,./123*.'}) 9 #再次访问网站,将会自动登录 10 driver.get("http://192.168.1.51/oneCard/login")