自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python-App自动化测试框架——手机模拟器adb版本与环境中adb版本不一致导致运行失败

问题输入adb devices查看连接的设备时报下面的错误在使用appium配置完手机模拟器参数的时候会出现,点击开始运行的时候连接的设备会被断开,这时可以检查环境中的adb版本和模拟器中adb版本是否一致,检查方法:环境配置中adb版本:已经配置了path环境变量,所以之间在命令行执行adb --version模拟器中的adb版本:切换到模拟器bin目录nox_adb.exe所在的文件夹下,cd D:\夜神模拟器\Nox\bin ,输入命令nox_adb --version ...

2021-09-27 22:59:45 8

原创 python+Selenium——web自动化之通过文本信息定位元素

目录使用文本内容定位的原因精确匹配:text()方法模糊匹配:contains()使用文本内容定位的原因在元素定位过程中有的元素只有标签没有属性,而只是具有文本信息,这时在定位的时候需要通过文本内容来定位。定位的方式:通过xpath定位方法定位,文本内容的选择形式有两种方法,精确匹配和模糊匹配如访问:控制台 · 天气API定位如图元素是否存在精确匹配:text()方法from selenium import webdriverimport time

2021-09-21 10:40:44 247

原创 Git-远程操作

目录仓库管理创建远程仓库建立连接上传(合并代码)克隆—从远程下载到本地从远程仓库拉取到本地分支管理创建分支合并分支删除分支报错处理教程:Git 教程 | 菜鸟教程 (runoob.com)Git教程™ (yiibai.com)仓库管理创建远程仓库Gitee - 基于 Git 的代码托管和研发协作平台建立连接本地与远程仓库的连接:$ git remote add origin 远程地址上传(合并代码)

2021-09-18 18:50:14 5

原创 python-App自动化测试框架——uiautomator2之元素操作方法(二)

目录点击长按拖动双指操作等待元素出现?消失?滚动屏幕方向通知栏与快捷设置栏获取UI层次结构转储内容截图点击click:点击元素d(text='支付宝').click() # 点击元素d(text='支付宝').click(timeout=5) # 5秒(超时时间)内等待元素出现后点击,超过后报错click_exists:根据元素是否存在,点击返回布尔值# 超时时间内等待元素出现后点击,如果查找到元素点击返回布尔值tru...

2021-09-06 18:49:15 42

原创 python-App自动化测试框架——uiautomator2之UI元素定位和操作

目录元素定位根据prop结构词定位子元素和兄弟定位相对定位XPATH定位元素常用API操作模拟九宫格解锁(六点连线)元素定位根据prop结构词定位ui2支持 android 中 UiSelector 类中的所有定位方式:https://developer.android.google.cn/reference/android/support/test/uiautomator/UiSelector名称 描述 text text是指定文本的元素

2021-09-05 23:55:03 99

原创 python-App自动化测试框架——uiautomator2之元素操作方法(一)

目录设备连接健康守护进程调试模式弹窗操作获取设备信息安装手机应用包启动应用程序关闭应用程序获取包信息屏幕操作文件上传和下载键盘操作设备连接import uiautomator2 as u2from pprint import pprint# 设备连接:USB连接方式# d = u2.connect('d7eac884') # 或u2.connect_usb('d7eac884'),这个方法是当前只有一个设备时使用# 设备连接:W.

2021-09-04 13:36:55 77

原创 python-App自动化测试框架——uiautomator2之无线连接手机设备失败解决方法

通过wifi无线连接手机设备不能运行代码的问题1、手机和电脑连接到同一个wifi2、开启远程adb ,(需要手机通过USB连接到电脑)3、执行adb tcpip 5555 (执行结果:restarting in TCP mode port: 5555 )4、断开USB 后,执行adb connect 192.168.1.27:5555 (192.168.1.27是手机的局域网IP地址)5、执行adb devices 或 adb devices-l,确认可以看到设备信息长...

2021-09-03 14:14:15 24

原创 python-App自动化测试框架——uiautomator2之环境搭建

目录简介实现过程环境安装安装库安装sdk安装守护进程atx-agent安装weditor简介uiautomator2是一个python库,用于Android的UI自动化测试,其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作。实现过程在移动设备上安装atx-agent(守护进程), 随后atx-agent启动uiautomator2服务(默认7912端口

2021-09-02 00:06:19 22

原创 PHP——mysql数据库之数据结果集和受影响行数

数据结果集方法(参数为sql语句执行的结果集对象) 说明 mysqli_num_rows() 获取结果中行的数量 mysqli_fetch_all() 获取所有结果并以数组的方式返回,支持关联数组及索引数组两种形式 mysqli_fetch_array() 获取一行结果并以数组的方式返回,支持关联数组及索引数组两种形式 mysqli_fetch_assoc() 获取一行结果并以关联数组返回 mysqli_fetch_row() 获取一行结果并以索

2021-08-30 20:55:33 11

原创 PHP——mysql数据库基础操作

菜鸟教程:连接数据库——https://www.runoob.com/php/php-mysql-connect.html 创建数据库(含PDO创建)——https://www.runoob.com/php/php-mysql-create.html 创建数据表——https://www.runoob.com/php/php-mysql-create-table.html 插入数据——https...

2021-08-22 15:46:44 21

原创 PHP——header() 函数、empty() 函数、四种引入文件的方法、字符串方法

菜鸟教程:empty() 函数——https://www.runoob.com/php/php-empty-function.html 字符串方法——https://www.runoob.com/php/php-ref-string.htmlheader() 函数菜鸟教程:header() 函数——https://www.runoob.com/php/func-http-header.htmlheader() 函数向客户端发送原始的 HTTP 报头:...

2021-08-21 20:28:52 9

原创 PHP——cookie与session

菜鸟教程:Cookie(https://www.runoob.com/php/php-cookies.html) Session(https://www.runoob.com/php/php-sessions.html)目录Session和Cookie异同Session开启和设置session访问session销毁sessionCookie设置和建立cookie使用cookie注销cookieSession和Cookie异同...

2021-08-19 23:38:13 43

原创 PHP——超级全局变量、表单

菜鸟教程:超级全局变量(https://www.runoob.com/php/php-superglobals.html) 表单(https://www.runoob.com/php/php-forms.html) 表单验证(https://www.runoob.com/php/php-form-validation.html) 表单必填字段(https://www.runoob.com/php...

2021-08-18 22:28:14 9

原创 PHP——面向对象、命名空间

菜鸟教程:面向对象——https://www.runoob.com/php/php-oop.html 命名空间——https://www.runoob.com/php/php-namespace.htmlphp中的 . 表示连接符,所以调用对象方法函数的时候不能使用打点调用,要用 -> 方法调用。<?phpclass Human{ var $name = '贾宝玉'; var $sex = '男'; function ...

2021-08-18 14:40:25 9

原创 PHP——数组

菜鸟教程:(数组)https://www.runoob.com/php/php-arrays.html (多维数组)https://www.runoob.com/php/php-arrays-multi.html (数组方法)https://www.runoob.com/php/php-ref-array.html<!DOCTYPE html><html lang="en"><head&gt...

2021-08-16 22:29:01 18 1

原创 PHP——函数及变量作用域

目录变量作用域九九乘法口诀表菜鸟教程:https://www.runoob.com/php/php-variables.html变量作用域<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name

2021-08-15 19:56:07 11

原创 PHP——流程控制语句

条件判断语句:https://www.runoob.com/php/php-if-else.htmlhttps://www.runoob.com/php/php-switch.html循环条件语句:https://www.runoob.com/php/php-looping.html https://www.runoob.com/php/php-looping-for.html流程控制语句与JS...

2021-08-15 12:08:54 5

原创 PHP——使用wordpress制作博客网站

1、wordpress软件下载地址:https://cn.wordpress.org/2、下载之后解压,将解压后的文件可以存放在D:\phpStudy\WWW目录下,如下:3、配置服务器设置网站目录为D:/phpStudy/WWW/wordpress/,点击应用4、启动服务,访问网站...

2021-08-14 18:37:26 11

原创 PHP基础

目录PHP的作用基本语法变量数据类型及运算单双引号使用菜鸟教程:https://www.runoob.com/php/php-tutorial.htmlPHP的作用生成动态页面内容 创建、打开、读取、写入、关闭服务器上的文件 收集表单数据 发送和接收cookies 添加、删除、修改数据库中的数据 限制用户访问网站上的一些页面 加密数据基本语法https://www.runoob.com/php/php-syntax.html脚本可以放在文档的任意

2021-08-13 22:40:48 7

原创 web前端—前端三剑客之JS-ES6(15):异步编程处理之async函数

菜鸟教程:https://www.runoob.com/w3cnote/es6-async.htmlasync 函数是 Generator 函数的语法糖,是将 Generator 函数的星号(*)替换成async,将yield替换成await。async函数的特点:内置执行器:Generator 函数的执行必须靠执行器,需要调用next方法才能真正执行,得到最后结果。async函数自带执行器,async函数会自动执行,输出最后结果。 语义简明:async和await,比起星号和yield,语

2021-08-08 22:41:17 13

原创 web前端—前端三剑客之JS-ES6(14):异步编程处理之Promise对象

目录Promise对象使用promise对象的方法then方法catch方法finally方法all方法race方法resolve方法与reject方法应用示例异步和同步异步:任务分段按特定顺序执行,适用于之间有结果或者数据依赖的任务。同步:任务各自执行,之间不影响,适合之间没有数据关联的任务。Promise对象使用Promise 是异步编程的一种解决方案,Promise可以比作一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。.

2021-08-07 23:28:21 18

原创 web前端—前端三剑客之JS-ES6(13):生成器及错误异常处理

生成器Generator生成器函数的特征:function关键字与函数名之间有一个星号 *; 函数体内部使用yield表达式; 执行生成器函数会返回一个遍历器对象,可调用.next方法进行遍历; return关键字可结束函数的yield执行注意点:每次调用返回的迭代器对象时, 运行到yield就会终止的, 下次调用next方法才会继续往下运行 next方法可以带一个参数,该参数就会被当作上一个yield表达式的返回值 function* iet() {

2021-08-05 20:25:24 12

原创 web前端—前端三剑客之JS-ES6(12):Module模块

菜鸟教程:https://www.runoob.com/w3cnote/es6-module.html导出文件需要使用export或者export default命令let add= function (str) { let strarr = str.split(','); let changenum = strarr.reduce((pre,next)=>{ let num1 = Number(pre); let num2 = Number(

2021-07-26 21:22:05 21

原创 web前端—前端三剑客之JS-ES6(11):Proxy代理

菜鸟教程:https://www.runoob.com/w3cnote/es6-reflect-proxy.html目录创建代理Proxy的拦截操作方法Proxy是在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。创建代理es6中使用代理是通过new一个代理实例对象进行操作:new Proxy(target,handler)参数说明:target:表示所要拦截(代理)的目标对象 handler:是

2021-07-25 23:21:40 17

原创 web前端—前端三剑客之JS-ES6(9):class类、面向对象、symbol数据类型

ES6 Class 类:https://www.runoob.com/w3cnote/es6-class.htmlsymbol数据类型:https://www.runoob.com/w3cnote/es6-symbol.html目录class定义类的注意点Object.assign添加类方法实例对象注意点静态方法、私有方法和私有属性继承class定义类的注意点ES6 的class写法的几个注意点:类的所有方法都定义在类的prototype属性上面 定义..

2021-07-22 21:31:38 29 1

原创 web前端—前端三剑客之JS-ES6(8):字符串、数值

菜鸟教程:https://www.runoob.com/w3cnote/es6-string.html模板字符串相当于加强版的字符串,用反引号 `,使用场景:作普通字符串 模板字符串支持多行字符串的格式换行,看起来更加简明 支持插入变量和表达式<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-C

2021-07-22 13:27:58 11

原创 web前端—前端三剑客之JS-ES6(7):函数参数及箭头函数

菜鸟教程:https://www.runoob.com/w3cnote/es6-function.html函数参数1、参数变量是默认声明的,所以不能用let或const再次声明,否则报错:UncaughtSyntaxError:Identifier'x'hasalreadybeendeclared function fun1(x = 1, y = 2) { // let x = 3; //参数变量是默认声明的,所以不能用let或co...

2021-07-21 23:14:01 25

原创 web前端—前端三剑客之JS-ES6(6):对象数据结构扩展、数组方法

1、允许直接写入变量和函数,作为对象的属性和方法 let a = '孟浩然'; let b = {a}; // 允许直接写入变量和函数,作为对象的属性和方法 console.log(b); // 等同于:let b = {a:a}2、对象属性名和方法名的简写属性名:见arr2.name 方法名:见arr2.fn() \ arr2.fn(input)3、属性名或者方法名是关键字的写法:见arr2.in()4、ES...

2021-07-21 19:44:14 29

原创 web前端—前端三剑客之JS-ES6(5):Set、WeakSet(二)

目录set的应用场景Set函数去重Set与数组的转换WeakSetWeakSet的方法set的应用场景1、实现并集(Union)、交集(Intersect)和差集(Difference)2、遍历隐射形成新的数组如果想在遍历操作中,同步改变原来的 Set 结构,目前没有直接的方法,但有两种变通方法一种是利用原 Set 结构映射出一个新的结构,然后赋值给原来的 Set 结构;一种是利用Array.from方法3、去重:见下Set函数去重S.

2021-07-19 23:05:30 17 1

原创 web前端—前端三剑客之JS-ES6(4):Set、WeakSet(一)

目录SetSet创建Set实例的属性和方法操作方法(增删改查)遍历方法set的应用场景Set函数去重Set与数组的转换WeakSetWeakSet的方法SetSet类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。Set创建和Map不同的是newSet()中的参数为一个数组,而不是以键值对存放的双数组。 let set1 = new Set(); let a..

2021-07-19 22:22:22 10

原创 web前端—前端三剑客之JS-ES6(3):Map、WeakMap

目录Map创建Map结构对象Map数据结构的键名Map数据结构的属性和方法增删改查遍历Map与数组之间的转换Map转为数组数组转为MapWeakMapJavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键(ES6加入了Symbol作为属性名称)MapObject对象与Map结构对象Object 结构提供了“字符串—值”的对应; Map 结构提供了“值—值”的对应,是一种更完善的 Ha...

2021-07-19 13:43:56 12

原创 web前端—前端三剑客之JS-ES6(2):解构赋值

目录数组的解构赋值注意点解析不成功与不完全解析解析赋值要求指定默认值惰性求值对象的解构赋值示例嵌套字符串的解构赋值数值和布尔值的解构赋值函数参数的解构赋值解构赋值的常见应用场景变量交换从函数返回多个值函数参数的定义提取JSON数据ES6 允许按照一定模式从数组和对象中提取值后对变量进行赋值,这被方式称为解构(解析结构的意思)。数组的解构赋值注意点1、赋值等号的左右侧的数组结构需要一致,这个叫做”模式匹配” ...

2021-07-17 15:42:05 27 1

原创 web前端—前端三剑客之JS-ES6(1):声明变量之let

参考菜鸟教程:https://www.runoob.com/w3cnote/es6-let-const.htmlhttps://www.runoob.com/js/js-let-const.htmllet是es6中的一个新的特性,和var一样,let也是用来定义变量的,但与var之间也有一些区别。let是一个块级作用域,可以解决变量作用域的问题:1、内部变量覆盖外部变量问题 <script> var s...

2021-07-16 19:35:07 21

原创 web前端—前端三剑客之JS(19):正则

参考python正则:https://blog.csdn.net/JBY2020/article/details/109005585菜鸟教程:https://www.runoob.com/js/js-regexp.html3wschool:https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp文件:链接,提取码:jbb0目录表达式的创建正则表达式标志符正则表达式的使用调用RegExp对象的相关方法调用String对..

2021-07-15 17:04:45 20

原创 web前端—前端三剑客之JS(18):DOM

见:https://blog.csdn.net/JBY2020/article/details/109864650https://blog.csdn.net/JBY2020/article/details/110148757文档链接:https://pan.baidu.com/s/1SWN_X7Irg3k29dnKFoYalA提取码:jbb0目录DOMDOM节点的属性和方法操作DOM节点对象HTML DOMHTMLElement 对象CSS样式E...

2021-07-12 16:39:09 10

原创 html快速生成标签:tab或回车快速补全标签或css样式

1、快速生成html结构输入 html: 或者 ! 后,回车或tab2、 快速格式化代码:右键格式化文档或者直接快捷键shift+alt+f3、快速补全css及标签,css只举例几个常用的。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="...

2021-07-12 00:01:00 239 1

原创 web前端—前端三剑客之JS(17):重定向方法——call、apply、bind

菜鸟教程:https://www.runoob.com/w3cnote/js-call-apply-bind.htmlcall、apply、bind区别:相同点:call、apply、bind都可以改变this的指向 不同点:call和apply都可以立马执行函数;bind函数不会立马执行,会返回一个新的函数call和apply的区别:传入参数的不同call传入任意多个参数:第一个参数为重定向后this指向的对象,之后的参数可以更任意多个 apply传入两个参数:第一个参数...

2021-07-11 21:10:23 12

原创 web实例(一):抽奖

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>D..

2021-07-11 01:00:20 32 1

原创 web前端—前端三剑客之JS(16):移动端事件

触摸式设备也拥有鼠标事件目录移动端的主要事件移动端事件的触发对象移动端事件对象的位置属性移动端事件的触发顺序其他事件对象阻止浏览器默认行为移动端的主要事件touchstart:当手指触摸屏幕时触发;即使已经有一个手指放在了屏幕上也会触发。 touchmove:当手指在屏幕上滑动时连续地触发。在这个事件发生期间,调用preventDefault() 可以阻止滚动。 touchend:当手指从屏幕上移开时触发。 touchcancel:当系统停止跟踪触摸时触发。...

2021-07-10 15:44:22 18

原创 web前端—前端三剑客之JS(15):BOM之事件类型、鼠标事件、键盘事件

鼠标键盘事件:https://blog.csdn.net/JBY2020/article/details/110148757目录三种事件类型事件绑定事件监听事件委托鼠标事件焦点事件点击及移动事件滚轮事件键盘事件键码表三种事件类型事件绑定Obj.on+事件名称=function(){}特点:事件绑定同一个对象只能给同一个事件绑定唯一一个事件处理函数.如果绑定第二个,第一个会被清除掉.因为本质上只是给对象的on事件属性上添加了一个函数 事.

2021-07-07 23:54:03 35

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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