自动化测试基础篇--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()
自动化测试基础篇--Selenium cookie操作的更多相关文章
- 自动化测试基础篇--Selenium浏览器操作
摘自https://www.cnblogs.com/sanzangTst/p/7462056.html 学习 Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法 ...
- 自动化测试基础篇--Selenium简单的163邮箱登录实例
摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...
- 自动化测试基础篇--Selenium文件上传send_keys
摘自https://www.cnblogs.com/sanzangTst/p/8358165.html 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一 ...
- 自动化测试基础篇--Selenium鼠标键盘事件
摘自https://www.cnblogs.com/sanzangTst/p/7477382.html 前面几篇文章我们学习了怎么定位元素,同时通过实例也展示了怎么切换到iframe,怎么输入用户名和 ...
- 自动化测试基础篇--Selenium元素定位
摘自https://www.cnblogs.com/sanzangTst/p/7457111.html 一.Selenium元素定位的重要性: Web自动化测试的操作:获取UI页面的元素,对元素进行操 ...
- 自动化测试基础篇--Selenium简介
摘自https://www.cnblogs.com/sanzangTst/p/7452636.html 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software Testing) ...
- 自动化测试基础篇--Selenium Python环境搭建
学习selenium python需要的工具: 1.浏览器 2.Python 3.Selenium 4.FireBug(Firefox) 5.chromedriver.IEDriverServer.g ...
- 引用 自动化测试基础篇--Selenium简介
原文链接:http://www.cnblogs.com/sanzangTst/p/7452636.html 鸣谢参藏法师 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software ...
- 引用 自动化测试基础篇--Selenium Python环境搭建
原文链接:https://www.cnblogs.com/sanzangTst/p/7452922.html 鸣谢参藏法师. 学习selenium python需要的工具: 1.浏览器 2.Pytho ...
随机推荐
- 【C#写日志两个简单方法】
方法一:以日期为日志文件名. public void WriteLog(string msg) { string filePath = AppDomain.CurrentDomain.BaseDire ...
- MFC控件GDI编程
MFC控件GDI编程 一丶学习内容 1.了解常用的GDI函数绘图. 2.使用常用的画笔画刷. 二丶常用的GDI函数绘图 上方则为我们常用的GDI函数了. 画线 矩形. 以及圆 等等. 2.1 画线代码 ...
- javaScript之分支判断与内置对象
一,分支结构 单一选择结构(if) 二路选择结构(if/else) 内联三元运算符 ?: 多路选择结构(switch) 1.1 if 控制语句 if-else基本格式: if (表达式){ 语句1; ...
- 完美实现 Windows 下网络通信
编译环境:DEV C++ 配置编译器 Windows 下 实现 Socket 编译需要 ws2_32.lib 这个库的支撑,所以我们编译前应该配置下编译器,具体配置步骤如下: Tools -> ...
- spark之java程序开发
spark之java程序开发 1.Spark中的Java开发的缘由: Spark自身是使用Scala程序开发的,Scala语言是同时具备函数式编程和指令式编程的一种混血语言,而Spark源码是基于Sc ...
- [Redux] redux的概述
redux 的概述 随着 javascript 单页应用的不断发展,javascript 需要管理比以往都要多的状态,管理不断变化的 state 非常困难,数据流动不断变的模糊不可预测,代码的开发与维 ...
- 【译】微型ORM:PetaPoco
PetaPoco是一款适用于.Net 和Mono的微小.快速.单文件的微型ORM. PetaPoco有以下特色: 微小,没有依赖项……单个的C#文件可以方便的添加到任何项目中. 工作于严格的没有装饰的 ...
- vue elementUI enter 回车 (转载)
表单提交时需要处理输入框的回车事件 一.vue原生 原生input标签可以用@keyup.enter="onSubmit" 如:<input v-on:keyup.enter ...
- 异常: Call From * 9000 failed on connection exception: java.net.ConnectException: Connection refused: no further information; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
场景: eclipse链接不上阿里云hadoop解决: 将hadoop的配置文件中的ip改为内网IP即可
- RPC调用与GC垃圾回收
RPC调用 多个服务协同完成一次业务时,由于业务约束(如红包不符合使用条件.账户余额不足等).系统故障(如网络或系统超时或中断.数据库约束不满足等),都可能造成服务处理过程在任何一步无法继续,使数据处 ...