接口测试-chap6-获取页面动态token

1.在发起某些请求时,可能会要求必须是从某个页面进行请求,此时会验证页面的token
2.这个token是动态生成的,每次请求时值都是不同的,
不可以通过fiddler抓取的值作为固定值传入,通过fiddler抓到的是某次请求的一个值,
通过python发起请求时,又是新的请求了。
所以需要先获取,再传入。
有点类似获取随机数,再传递这个随机数
这里的例子是登录redmine,这个参数值是通过页面上的input[name=authenticity_token]标签传入的
3.可以使用BeautifulSoup获取:
BeautifulSoup用于爬虫时解析网页,可以获取到网页的标签。
在这里用于获取input[name=authenticity_token]标签的authenticity_token值,
它的返回值是列表,内容是一个标签,获取标签中属性值时,先通过列表索引知道元素,再通过键取值

from bs4 import BeautifulSoup

soup = BeautifulSoup(r2.text, ‘lxml‘)
tag = soup.select(‘input[name=authenticity_token]‘)
data = {"utf8": "?",
"authenticity_token": tag[0][‘value‘],
"username": "liuhui",
"password": "courageech123"}
res = s.post(url_2, data=data)

原文地址:https://www.cnblogs.com/come202011/p/12228881.html

时间: 2024-10-08 15:43:01

接口测试-chap6-获取页面动态token的相关文章

selenium获取页面动态html;静态html

1 # -*- coding: utf-8 -*- 2 from selenium import webdriver 3 import sys 4 import urllib2 5 import time 6 import codecs 7 reload(sys) 8 sys.setdefaultencoding('utf-8') 9 10 def gethtml(url): 11 page = urllib2.urlopen(url) 12 html_all = page.read() 13

动态获取页面参数内容

本文章主要内容为动态的获取页面内容,在地址栏后面输入参数进行相加,最终将结果返回给用户,如: http://i.cnblogs.com/add?i=1&j=2,?前面的为处理程序路径,?后面的为请求的参数,以&分割多个参数,注意这是HTTP协议格式,一种规范,一种标准 static void Main(string[] args) { Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream

postman使用动态token发post请求小结

最近使用postman做接口测试,感觉挺好用的. 测试中,每次post请求都要携带一个token,token是通过get请求得来的,动态变化的,并且token有有效期的限制.为了避免重复获取token来手工修改给post请求赋值: 1.把token做成环境变量,这样多个post请求可以复用 在post请求中使用环境变量,携带token信息 2.发送get请求获取当前可用token之后,在Tests中给环境变量赋值,这样避免了token过期后,要手工发get,然后再手工修改环境变量的麻烦(官方文档

jQuery基础学习5——JavaScript方法获取页面中的元素

给网页中的所有<p>元素添加onclick事件 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head>

登录页面动态验证码的设置

登录页面动态验证码的设置 采用php中创建对象的思想进行动态验证码的设置 1.创建出一个背景图片,用来存放动态码输出位置 1 function createImage(){ 2 // 创建图片对象,并设置图片的宽高 imagecreatetruecolor 3 $this->image = imagecreatetruecolor($this->width, $this->height); 4 // 图片创建背景颜色 5 // rand(下界,上界), php中的随机数 6 $backg

chrome 浏览器插件开发(二)—— 通信 获取页面 编写chrome插件专用的库

在chrome插件的开发过程中,我遇到了一些问题,在网上找了不少文章,可能是浏览器升级的原因,有一些是有效的也有无效的.下面我简单的分享一下我遇到的坑,以及我把这些坑的解决方案整理而成的js库 —— crxTool . 一.坑和铲子 1.browser action或page action与content script通信 在网上找了不少方法,最后选择的方法如下: 发送消息: 1 var send= function(data, cb){ 2 chrome.tabs.query({active:

对于页面动态加载的元素事件无效的解决方案

当用ajax动态获取的数据放在新建的div中进行展示时,当你提前写一些 mouseover,click 操作时会发现不起作用 解决方法: 把事件绑定到它的父元素上面 例如,每次读到数据会将它放在新建的 class = data的div中显示,并且用append方法把他添加在 id= parent 的div中.这个时候假如对data这个块有点击事件,平常可能会写 $('.data').click(function(){...}); 当点击这个div时,不会有反应.这时候可以再一开始将事件绑定到父元

js获取页面url中的各项值

一. 通过window.location获取各项参数 1.获取页面完整的url url = window.location.href; 2.获取页面的域名 host = window.location.host; host2=document.domain; 应用场景:页面跳转,开发环境和测试环境域名不同,所以需要动态获取后进行拼接跳转的url. 二.javascript正则获取url中的参数 1.通过substr配合split获取 //正则获取url中的参数     function URL_

js获取页面url的方法

我们可以用javascript获得其中的各个部分 1, window.location.href 整个URl字符串(在浏览器中就是完整的地址栏) 本例返回值: http://ifisker.com/blog/post/0703/window.location.html# 2,window.location.protocol URL 的协议部分 本例返回值:http: 3,window.location.host URL 的主机部分 本例返回值:www.x2y2.com 4,window.loca