现在有很多网站有验证码,跳过验证码实现登录可以使用cookies登录

目录

1、webdriver的添加cookies的方法

2、举个栗子

1、webdriver的添加cookies的方法

webdriver.add_cookie()  #用add_cookies方法添加需要的cookies信息

一般情况下,填写name和values值就可以,格式如下:

c1={u'name':‘XX’,
u'value':XX} 
如果仅填写name和value登录不了,则可以继续添加其他的
 c1 = {u'domain': u'XX',
u'name': u'XX',
u'value': u'XX',
u'expiry': 1533197286, #时间戳
u'path': u'/',
u'httpOnly': True, #防脚本攻击
u'secure': True} 在Cookie中标记该变量,表明只有当浏览器和Web Server之间的通信协议为加密认证协议时,浏览器才向服务器提交相应的Cookie。当前这种协议只有一种,即为HTTPS

  

2、举个栗子

第一步:访问需要登录后才能访问的页面

driver=webdriver.Firefox()
driver.get("https://www.eolinker.com/#/home/project/api/") #需要登录后才能访问的一个接口  

第二步:使用fiddler抓取登录后的cookies

登录前:

登录后:

第三步:添加cookies

c1={u'name': u'userToken',
u'value':u'%242y%2410%24peAtYKJZVoYsbnWyksn3Nep2q5KS5LpJdJWZ7cq3s3TFH83A5yxz2'}
c2={u'name': u'verifyCode',
u'value': u'4dacda8241457041ad4846ac23b8b023'} driver.add_cookie(c1)
driver.add_cookie(c2)

 第四步:刷新页面,看到的就是登录后的页面

time.sleep(3)
driver.refresh()

  代码如下:

# coding:utf-8

from selenium import webdriver
import time
driver=webdriver.Firefox()
driver.get("https://www.eolinker.com/#/home/project/api/") #需要登录后才能访问的一个接口
# 第一步:一般的用name和value就够了
c1={u'name': u'userToken',
u'value': u'%242y%2410%24peAtYKJZVoYsbnWyksn3Nep2q5KS5LpJdJWZ7cq3s3TFH83A5yxz2'}
c2={u'name': u'verifyCode',
u'value': u'4dacda8241457041ad4846ac23b8b023'} driver.add_cookie(c1)
driver.add_cookie(c2) time.sleep(3)
driver.refresh() #刷新页面,这时候看到的就是登录后看到的页面
time.sleep(3)
driver.close()

  

UI自动化之cookies登录的更多相关文章

  1. IDEA+java通过SSH来进行分析日志,实现UI自动化动态验证码登录

    在我写自动化脚本的时候是要真实发送验证码才能往下进行UI自动化 思路:验证码会显示在哪些地方,手机短信?数据库存储?日志? 完整代码如下: package guanyu.tools; import c ...

  2. 接口自动化之cookies登录

    现在有很多网站有验证码,跳过验证码实现登录可以使用cookies登录 目录 1.requests的添加cookies的方法 2.举个栗子 1.requests的添加cookies的方法 request ...

  3. selenium自动化 | 通过获取cookies登录

    >>>登录百度<<<#获取登录成功后的cookies def get_cookies(): driver.get(bd_url) driver.implicitly ...

  4. robot framework UI自动化之登录

    前面已写环境的搭建,接下来就可以直接进行UI自动化的编写工作了 目录 1.准备工作 2.了解定位 3.一个登录案例 1.准备工作 第一步:需要使用chrome浏览器来测试,因此首先要有一个驱动,下载好 ...

  5. ui自动化笔记 selenium_webdriver,ui自动化框架(web)

    Selenium学习笔记 selenium webdriver是业界公认ui自动化测试的标准,其封装的api可以对浏览器的任何地方进行操作 selenium2.0和selenium3.0的区别? 3. ...

  6. 【Android测试】UI自动化代码优化之路(临时发布, 随时删除)

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5993622.html 关于UI自动化的抱怨 听过不少人这样 ...

  7. Appium UI自动化的那些梗

    @作者 彭海波 转载请注明出处 前言 由于需求的快速迭代和敏捷测试的要求,在测试过程中引入自动化成为必不可少的手段.作为一个互联网测试团队,我们自然也引入了自动化测试这个环节.在众多的测试框架中,我们 ...

  8. 洗清UI自动化鸡肋说的不白之冤

    人类文明发展的一个重要标识是工具的诞生,当人类开始制作工具来提高生产力时,就逐渐拉开了与其他生物的距离.曾在2013年,<Google如何测试软件>中提到的分层自动化金字塔,轰动业界.而在 ...

  9. 基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍

    1. 启动浏览器 前边有详细介绍启动三种浏览器的方式(IE.Chrome.Firefox): private WebDriver driver = null; private String chrom ...

随机推荐

  1. idea 社区版本创建javaweb项目 使用jetty

    idea社区版本 创建javaweb项目后使用jetty启动 <dependencies> <dependency> <groupId>javax.servlet& ...

  2. ES6新数据类型Symbol

    Symbol 需计算字面量属性时使用 const benz = Symbol('benz'); const car = { [benz]: 'benz car' }; const info = Sym ...

  3. 错排问题 && 洛谷 P1595 信封问题

    传送门 一道裸的错排问题 错排问题 百度百科上这样说 就是对于一个排列,每一个数都不在正确的位置上的方案数.n 个元素的错排数记为 D(n). 公式 D(n)=(n−1)∗(D(n−2)+D(n−1) ...

  4. selenium安装及环境搭建

    说明:安装selenium前提必须是安装好了python和pip 1.安装python 在Python的官网 www.python.org 中找到最新版本的Python安装包(我的电脑是windows ...

  5. C#根据出生日期和当前日期计算精确年龄

    C#根据出生日期和当前日期计算精确年龄更多 0c#.net基础 public static string GetAge(DateTime dtBirthday, DateTime dtNow){ st ...

  6. ajax图片上传(asp.net +jquery+ashx)

    一.建立Default.aspx页面 <%@ Page Language="C#" AutoEventWireup="true"  CodeFile=&q ...

  7. Docker实战部署应用——Redis

    Redis 部署 拉取Redis镜像 docker pull redis 创建Redis容器 docker run -id --name=sun_redis -p 6379:6379 redis 客户 ...

  8. 阿里P7前端需要哪些技能

    原谅我copy过来的,但是这个条理很清楚很有借鉴意义 前言 以下是从公众号的文章中获取到的一位阿里的前端架构师整理的前端架构p7的技能图谱,当然不是最完整.最系统的,所以之后我会一直维护更新这里的内容 ...

  9. 使用vue-resource请求数据的步骤

    1.需要安装 vue-resource模块 注意加上--save npm install vue-resource --save 2.main.js 引入vue-resource import Vue ...

  10. Intel MKL函数之 cblas_sgemm、cblas_sgemm_batch

    cblas_sgemm int m = 40; int k = 20; int n = 40; std::vector<float> a(m*k, 1.0); std::vector< ...