自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 前端鉴权:cookie、session、token、jwt、单点登录

HTTP 是无状态的,为了维持前后请求,需要前端存储标记cookie 是一种完善的标记方式,通过 HTTP 头或 js 操作,有对应的安全策略,是大多数状态管理方案的基石session 是一种状态管理方案,前端通过 cookie 存储 id,后端存储数据,但后端要处理分布式问题token 是另一种状态管理方案,相比于 session 不需要后端存储,数据全部存在前端,解放后端,释放灵活性token 的编码技术,通常基于 base64,或增加加密算法防篡改,jwt 是一种成熟的编码方案。

2024-05-22 11:13:50 440

原创 uni-app 跨域配置vite.config,js

【代码】uni-app 跨域配置vite.config,js。

2024-05-21 13:52:45 603

原创 python起HTTP服务,连接msql的增删改查示例

`@app.route('/deleteItem', methods=['GET'])`:接收GET请求,通过ID删除指定的景点数据。- `@app.route('/getItem', methods=['GET'])`:接收GET请求,通过ID获取指定的景点数据。- `@app.route('/addItem', methods=['POST'])`:接收POST请求,添加新的景点数据。- `@app.route('/')`:获取所有景点数据,并以JSON格式返回。- 配置静态文件目录。

2024-05-21 10:42:16 329 1

原创 Node.js 文件读写相关函数模块

const base64str = Buffer.from(bitmap, 'binary').toString('base64') // base64编码。* 检测文件夹是否存在 不存在则创建。* 图片路径转base64。//检测文件或者文件夹存在。* 读取文件转换成对象。* 写入对象到文件中。* 写入数据到文件中。

2023-03-17 17:53:55 206

原创 在Node环境中模拟键鼠热键

utomatically operate the keyboard and mouse, do not need gyp.const robot = require(‘robot-cmd’)robot.moveTo(100,100)robot.leftClick()robot.leftDown()robot.leftUp()robot.doubleClick()robot.rightClick()robot.rightDown()robot.rightUp()robot.wheelDown(

2023-03-17 17:49:15 645

原创 查找App包名

可以在手机上打开 app,windows 系统用 findstr 过滤,cmd 输入adb shell dumpsys window | findstr mCurrentFocus* daemon started successfully mCurrentFocus=Window{1f8dd29 u0 tv.danmaku.bili/tv.danmaku.bili.ui.video.VideoDetailsActivity}...

2021-10-11 10:31:57 265

原创 postman变量设置及脚本的使用

(1)变量 postman中变量有两种,【环境变量】和【全局变量】 1.环境变量不唯一,可以有多组、全局变量只有一组 右上角的【查看】图标可以切换当前环境变量的分组,和设置环境变量或者全局变量2.变量的引用 变量设置好之后,可以用{{变量名}},来引用,可以在请求参数,请求头,或者请求方法中使用2.设置环境变量有两种方式一种是在接口调用前设置好环境变量&a...

2021-10-02 13:01:32 2503

原创 selenium 三种等待方式

1.隐性等待driver.implicitly_wait(10) #隐式等待10秒由webdriver提供的方法,一旦设置,这个隐式等待会在WebDriver对象实例的整个生命周期起作用,它不针对某一个元素,是全局元素等待,即在定位元素时,需要等待页面全部元素加载完成,才会执行下一个语句。如果超出了设置时间的则抛出异常。缺点:当页面某些js无法加载,但是想找的元素已经出来了,它还是会继续等待,直到页面加载完成(浏览器标签左上角圈圈不再转),才会执行下一句。某些情况下会影响脚本...

2021-09-14 11:43:20 664

原创 Appium 元素定位

1.taptap是模拟手指点击,一般页面上元素.语法有两个参数,第一个是positions,是list,最多可以有五个坐标,代表5根手指,duration是持续时间,单位毫秒def tap(self: T, positions: List[Tuple[int, int]], duration: Optional[int] = None) -> T: """Taps on an particular place with up to five fingers, holding f

2021-09-13 15:38:24 1483

原创 Appium 环境配置

Appium工作原理Client端发送自动化指令给Appiumserver,Appium Server接收到client发送的指令后,转换为移动端能够识别的指令,然后发送给移动端设备,并对移动端设备进行操作。1.安装Appium python clientpip install Appium-Python-Client2.安装 Appium Desktop 安装Appium-windows-1.21.0.exe3.安装安卓开发环境...

2021-09-13 09:55:40 701

原创 python selenium操作cookie

cookie的属性一般cookie所具有的属性,包括:Name: cookie的名称Value: cookie的值Domain:域,表示当前cookie所属于哪个域或子域下面。对于服务器返回的Set-Cookie中,如果没有指定Domain的值,那么其Domain的值是默认为当前所提交的http的请求所对应的主域名的。比如访问 http://www.example.com,返回一个cookie,没有指名domain值,那么其为值为默认的www.example.com。Path:表示c

2021-09-12 18:06:57 625

原创 selenium 文件上传

前端的【文件上传】有两种类型<input type="file"/> 通过input标签读取文件内容,比如上传头像 将文件通过ajax直接上传到服务器后台对于第一种,只需要定位到input标签,然后使用send_keys一个文件的路径即可,比如driver.find_element_by_id('fileImg').send_keys('C:\\Users\\10541\\Desktop\\a.jpg')第二种的话,推荐使用【PyUserInput】PyUserInp..

2021-09-04 13:15:57 370

原创 pyautogui

PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作。安装pip install pyautogui1.屏幕坐标Pyautogui的鼠标函数使用想x,y坐标,原点在屏幕的左上角,向右为x轴正方向,向下为y轴正方向。知道了这个就可以任意定位屏幕上的点啦。2.查看元素坐标inputEle=driver.find_element_by_id('kw').send_keys('abcd')rect=inputEle...

2021-08-07 20:35:10 1208

原创 Selenium: ActionChains

ActionChains是一种低级别的自动化交互方法,例如鼠标移动,鼠标按钮操作,按键操作和上下文菜单交互。这对于执行更复杂的操作非常有用,例如悬停和拖放。 生成用户操作。 在ActionChains对象上调用操作方法时, 操作存储在ActionChains对象的队列中。 当您调用perform()时,事件将按它们的顺序触发 排队等候。 ActionChains可以用于链式:: menu = driver.f...

2021-08-06 09:58:59 695 1

原创 Selenium元素定位

(1)find_element_by_id()(2)find_element_by_name()(3)find_element_by_class_name()(4)find_element_by_xpath() 有两种形式 一种是绝对路径定位。这种定位方式是利用html标签名的层级关系来定位元素的绝对路径,一般从<html>标签开始依次往下进行查找。如百度搜索框的绝对路径xpath定位可以是这样的:find_element_by_xpath(...

2021-08-04 20:55:06 1718

原创 python:赋值、浅拷贝、深拷贝

首先需要了解下几个概念变量:是一个系统表的元素,拥有指向对象的连接空间 对象:被分配的一块内存,存储其所代表的值 引用:是自动形成的从变量到对象的指针 类型:属于对象,而非变量 不可变对象:一旦创建就不可修改的对象,包括字符串、元组、数值类型(该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。) 可变对象:可以修改的对象,包括列表、字典、集合(该对象所指向的内存中的值可以被改变。变量

2021-08-02 11:11:18 107

原创 python 异常处理

异常处理:try/except对于索引查找的操作,在索引越界搜索的时候会报错。例如:>>> s="long">>> s[4]Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: string index out of range所报的错误是IndexError。如果将索引查找放在一个函数里:de...

2021-07-28 20:13:36 585

原创 python 中 关于import的一些东东

在python中使用import语句导入模块时,python通过三个步骤来完成这个行为。1:在python模块加载路径中查找相应的模块文件2:将模块文件编译成中间代码3:执行模块文件中的代码在python中模块的导入动作只发生一次。也就是说当一个模块在一个文件中被导入过一次以后,当另外的文件继续需要导入这个模块时,python首先会在sys.modules这个变量中查出是否已经导入过这个模块,如果已经导入过则上面三个步骤不会执行,直接引用之前导入的内存中的内容。在步骤2中,python首

2021-07-27 20:31:31 909

原创 web端打开本地应用

通过urlschemajs代码:location.href='Program://'加个注册表Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Program]@="URL:Program Protocol Handler""URL Protocol"=""@="WebshellProtocol"[HKEY_CLASSES_ROOT\Program\DefaultIcon]@="E:\\Program Fil..

2021-07-27 16:13:30 730

原创 cookie 与 Session

cookie与session应用于互联网中的一项基本技术——会话(用户与客户端的交互)跟踪技术,用来跟踪用户的整个会话。简单来说,cookie是通过在客户端记录信息确定用户身份的,而session则通过在服务器端记录信息确定用户身份。cookiecookie是服务器传给客户端的体积很小的纯文本文件。客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器发一个cookie。客户端浏览器会把cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器..

2021-07-22 22:45:05 156

原创 python: 单步调试

所谓的单步调试,就是指的是每次执行一句Python语句,单步执行代码pdb是Python自带的一个库,为Python程序提供了一种交互式的源代码调试功能,包含了现代调试器应有的功能,包括设置断点、单步调试、查看源码、查看程序堆栈等pdb模块的使用方法(1)在命令终端输入python -m pdb xxx.py会进入单步执行模式(2) 在代码中设置断点import pdb#导入pdb库#在需要打调试的地方调用pdb模块的set_trace方法pdb....

2021-07-21 22:22:37 1888

原创 Fiddler的使用

界面介绍备注:(之前请求的流程图) 之后请求的流程图 请求拦截方式(1)全局拦截...

2021-07-19 21:58:20 332

原创 Postman的使用

常见的HTTP请求方法:序号 方法 描述 1 GET 请求指定的页面信息,并返回实体主体。 3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。 5 DELETE 请求服务器删除指定的页面。 7 OPTIONS 允许客户端查看服务器的性能。 ge.

2021-07-18 15:17:51 1260

原创 python日志: logging

在 Python 中,怎样才能算作一个比较标准的日志记录过程呢?或许很多人会使用 print 语句输出一些运行信息,然后再在控制台观察,运行的时候再将输出重定向到文件输出流保存到文件中,这样其实是非常不规范的,在 Python 中有一个标准的 logging 模块,我们可以使用它来进行标注的日志记录,利用它我们可以更方便地进行日志记录,同时还可以做更方便的级别区分以及一些额外日志信息的记录,如时间、运行模块信息等。logging模块简介logging模块是Python的一个标...

2021-07-15 22:23:25 527 1

原创 pytest

pytest 是一个成熟的功能丰富的python测试框架,主要特点有以下几点: 简单灵活 支持参数化,可以细粒度的控制要测试的测试用例 支持简单的单元测试和复杂的功能测试,可用作 selenium/appnium 等自动化测试、接口自动化测试 第三方插件丰富,比如pytest-html安装pytest pip install pytest编写规则测试文件以test_*.py 或者 *_test.py...

2021-07-14 22:39:34 209 1

原创 python: 内置装饰器

python有三个内置装饰器:@property ,@classmethod ,@staticmethod(一)@property 这是用来修饰类的方法的,可以把类的方法变成可直接读/写的属性 我们看看下面这个例子class Person(object): def __init__(self, name, age): self.name = name self._age = age ...

2021-07-13 22:23:13 566

原创 python: 装饰器详解

(一)装饰器其实就是对函数的修饰,它是一个返回函数的高阶函数。在运行期间动态增加函数的功能,但是又不修改函数本身,在python中称之为-----装饰器。装饰器的抽象形式:def decorator(fn): def inner(*args, **kw): # 前置操作.... return fn(*args, **kw) # 后置操作... return inner本质上是一个嵌套函数,接收被修饰的函数fn为参数,并返回一个包装

2021-07-13 21:38:56 190

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除