方法一:手动登录系统后,F12查看页面cookies的值,键值对的形式写入代码中

add_cookie方法,实际编写时,遇到某些参数无效的报错 可以直接把对应的键值对删除,举例仅写了一行数据,实际运行需要写完整(有部分行是未发挥作用的,但需通过不断的排除才可知道哪些为必要参数)

import time
from selenium import webdriverdriver = webdriver.Chrome()
driver.get('https://www.csdn.net/')driver.add_cookie({'name':'log_Id_view','value':'2450','domian':'.csdn.net','path':'/','httpOnly':'FALSE','Secure':'FALSE'})#添加cookietime.sleep(2)
driver.refresh()#刷新页面可看到已登录成功

方法二:打开验证码页等待一段时间,手工输入用户名密码验证码,点击提交或登录,print(driver.get_cookies()):打印输出cookies的值,直接从返回结果中复制

import time
from selenium import webdriverdriver = webdriver.Chrome()
driver.get('https://www.csdn.net/')time.sleep(30)
print(driver.get_cookies())#打印输出cookies的值,直接从返回结果中复制

方法三:将cookies写入Excel中,再读取Excel中的cookies

导入第三方模块,常用:xlwt xlrd openpy openpyxl

注意点:写入Excel中某些key的值数据类型为布尔类型,但读取时会读取为字符串类型,所以需要进行数据类型转换,转换语法可参考如下两种:

无需强制转换时报错的写法:cookie_dict['httpOnly'] = sheet.cell_value(row_num,4)

1、三元运算符转换

cookie_dict['httpOnly'] = True if sheet.cell_value(row_num,4) == 'True' else False

2、直接强制转换

cookie_dict['httpOnly'] = bool(sheet.cell_value(row_num,4))

import time
import xlrd
import xlwt
from selenium import webdriverdriver = webdriver.Chrome()
driver.get('https://www.csdn.net/')
time.sleep(30)
cookies = driver.get_cookies()#将cookies写入Excel文件
workbook = xlwt.Workbook(encoding='UTF-8')#创建workbook对象
worksheet = workbook.add_sheet('sheet1')#创建工作表sheet
worksheet.write(0,0,'name')#往表中写入内容,第一个参数为行 第二个参数为列  第三个参数为内容
worksheet.write(0,1,'value')
worksheet.write(0,2,'path')
worksheet.write(0,3,'domain')
worksheet.write(0,4,'httpOnly')
worksheet.write(0,5,'secure')
for i in range(1,len(cookies)+1): #len(cookies)取值为1,2,3,4worksheet.write(i, 0, cookies[i-1]['name'])  # 往表中写入内容,第一个参数为行 第二个参数为列  第三个参数为内容worksheet.write(i, 1, cookies[i-1]['value'])worksheet.write(i, 2, cookies[i-1]['path'])worksheet.write(i, 3, cookies[i-1]['domain'])worksheet.write(i, 4, cookies[i-1]['httpOnly'])worksheet.write(i, 5, cookies[i-1]['secure'])
workbook.save('csdn_cookies.xls')#csdn_cookies.xls#读取Excel文件中的cookies值
Open_workbook = xlrd.open_Open_workbook('csdn_cookies.xls')#打开Excel文件
sheet = Open_workbook.sheet_by_name('sheet1')
cookie_list = []
for row_num in range(1,sheet.nrows):cookie_dict = {}cookie_dict['name'] = sheet.cell_value(row_num,0)cookie_dict['value'] = sheet.cell_value(row_num,1)cookie_dict['path'] = sheet.cell_value(row_num,2)cookie_dict['domain'] = sheet.cell_value(row_num,3)cookie_dict['httpOnly'] = True if sheet.cell_value(row_num,4) == 'True' else False#三元运算转换 True是字符串类型,需要转为布尔类型 否则会报错# cookie_dict['httpOnly'] = bool(sheet.cell_value(row_num,4))#直接强制转换   True是字符串类型,需要转为布尔类型 否则会报错cookie_dict['secure'] = True if sheet.cell_value(row_num,5) == 'True' else Falsecookie_list.append(cookie_dict)
for cookie in cookie_list:driver.add_cookie(cookie)
time.sleep(3)
driver.refresh()#刷新页面

注意:如果遇到cookie有Expirse字段,要去掉

Python+Selenium UI自动化 - cookie处理方法及适用场景相关推荐

  1. python selenium UI自动化解决验证码的4种方法

    测试环境 windows7+ firefox50+ geckodriver # firefox浏览器驱动 python3 selenium3 selenium UI自动化解决验证码的4种方法:去掉验证 ...

  2. Python Selenium UI自动化:滚动条滑动

    文章目录 问题 滑动至固定位置 Window 对象方法 - scrollTo js&python:滑动至固定位置 滑动至元素 元素对象方法 js&python:滑动至元素 问题 在UI ...

  3. Python Selenium UI自动化 ⽂件上传

      UI自动化进行文件上传,其实本质就是将所需上传的文件路径,传递给后端服务即可,至于读取文件的过程,其实开发人员已经在后端服务中完成了.所以我们要做的就是:拿到文件路径 -> 传出去.那么这里 ...

  4. Python+Selenium UI自动化 - 调用JS代码

    当webdriver遇到无法完成的操作时候,这个时候可以使用javascript来完成,webdriver提供了execute_script()接口来调用js代码. 执行js有两种场景: 1.在页面上 ...

  5. Python+Selenium UI自动化 - alert/confirm/prompt窗口处理方法

    WebDriver中处理原生JS的alert.confirm以及prompt非常方便,三种弹出窗口均无法直接通过页面元素定位,不关闭窗口无法在页面上做其他操作 语法:         text:返回a ...

  6. Python Selenium UI 实现视频自动化播放

    Python Selenium UI 实现视频自动化播放 1.需求:实现某一课程自动播放 from selenium import webdriver from selenium.webdriver. ...

  7. Python+Selenium WebUI自动化框架 -- 实现特殊PO模型

    前言: 设计执行格式,封装PO模型工厂,实现PO模型脱离代码,一套代码执行所有项目的UI自动化,让UI自动化框架脱离高成本.低效率时代,将用例的重用性贯彻到极致,让烦人的PO模型变得无所谓,让一个测试 ...

  8. python+selenium实现自动化连接校园网

    python+selenium实现自动化连接校园网(资源下载链接在总结) 校园网的自动连接 在学校里面,我经常会用到校园WiFi.我个人使用的是办移动套餐送的wifi套餐,因此,我连接的WiFi是NJ ...

  9. selenium自动化测试_维持Selenium测试自动化的完美方法

    selenium自动化测试 毫无疑问, 自动浏览器测试已改变了软件开发的工作方式. 如果不是Selenium,我们将无法像我们一样使用各种各样的无错误的Web应用程序. 但是有时,甚至IT部门也误解了 ...

最新文章

  1. 企业支付宝账号开发接口实现
  2. matlab 删除路径_MATLAB自动管理文件
  3. PEAR安装、管理及使用
  4. windows双机调试
  5. creo如何更改打开时显示方式_Creo4.0入门教程(3):设置工作目录和打开以及保存文件...
  6. 重要接口—NavigableSet接口
  7. 数据库显示日期时仅仅显示“年-月-日”的问题
  8. python中流程图_python用graphviz画流程图
  9. 小甲鱼python课后题简书_Python练习题100道
  10. A_Pancers团队项目设计完善编码测试
  11. 高能解析得时候忽略某个字段_我们什么时候应该忽略批评?
  12. 能打开java文件的软件有哪些_使用JAVA打开本地应用程序相关的文件
  13. Hibernate JPA中@Transient、@JsonIgnoreProperties、@JsonIgnore、@JsonFormat、@JsonSerialize等注解解释...
  14. CSDN博客添加友情链接
  15. 一台计算机固定一个ip地址,两台电脑如何分享一个固定的IP地址
  16. 黑客帝国中的代码雨写法
  17. dev、test、pre和prod是什么意思?
  18. 文章同一位置引用多篇参考文献标注方法
  19. 穿戴-智能穿戴-ProjectGlass:谷歌眼镜(Google Project Glass)
  20. 董宝珍:从股市总市值占GDP比例看本轮牛市的归宿

热门文章

  1. 报错 | Templates should only be responsible for mapping the state to the UI. Avoid placing tags with s
  2. 转: 不替换降低jlinkarm.dll版本,利用ollydug反汇编J-Flash,完美解决去掉The connected J-Link is defective提示框和解决不能仿真的问题
  3. 计算机毕业设计Node.js+Vue流浪猫狗救助站(程序+源码+LW+部署)
  4. Kube-Prometheus 部署
  5. SSH Secure 连接虚拟机 报 The host ‘192.168.25.133’ is unreachable。。。。。。
  6. 最好的 HTML5/CSS3 演示(PPT)框架
  7. 中国计算机top50大学,计算机学科大学排名TOP50,实力强,毕业生认可度高
  8. Windows开发值得推荐的分析工具,值得收藏
  9. Linux 如何查看.deb文件详细信息版本号包名
  10. 五、设计模式——接口隔离原则