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.获取cookies方法直接用:get_cookies()
2.先启动浏览器,获取cookies,打印出来发现是空:[]
3.打开博客首页后,重新获取cookies,打印出来,就有值了
# coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
cookies = driver.get_cookies()
print('打开网页前:',cookies)
driver.get("http://www.1668s.com")
cookies = driver.get_cookies()
print('打开网页前:',cookies)
driver.quit()
二、添加cookie
# coding=utf-8
from selenium import webdriverdriver = webdriver.Firefox ()driver.get ("http://www.youdao.com")# 向cookie中name和value中添加回话信息driver.add_cookie({'name':'key-1668s.com','value':'优惠'})# 遍历cookie中name和value信息并打印对应的信息,并包括添加对应的信息for cookie in driver.get_cookies (): print("%s->%s" % (cookie['name'], cookie['value']))driver.quit ()
三、记录cookie
通过向浏览器中添加cookie可以绕过登录的验证码。在登录的时候勾选记住密码,当下次访问该网站时就默认处于登录状态了。记住密码功能其实就记录了浏览器的cookie中。通过webdriver来操作浏览器的cookie,可以通过add_cookie()方法将用户名密码写入浏览器cookie,当再次访问时,服务器将直接读取浏览器的cookie进行登录。
# coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://1668s.com/login")
# 将用户名密码写入浏览器cookie中
driver.add_cookie({'name': 'username', 'value': 'super'})
driver.add_cookie({'name': 'password', 'value': 'asd,./123*.'})
# 再次访问网站,将会自动登录
driver.get("http://1668s.com/login")