- 博客(56)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 Postman RSA+Bate64验签
在之前写的日志《https://mp.csdn.net/mp_blog/creation/editor/113105977》中写了RSA签名,忘记写了验签,现在补上该部分。 结合上述文档,获取到服务端返回的数据后,需要使用自己渠道的私钥获取到AES密码key,然后使用key解密出返回的源数据和sign,根据源数据使用服务端的公钥进行验签。 引入forge.js因为postman自带的加密函数是cryptoJS,不能满足数字RSA-SHA1签名,即java里的SHA1WithRSA...
2021-07-28 16:32:59
598
原创 Postman报文进行解密之AES
上文中使用RSA解密获得了AES密码的明文,下一步就需要使用AES密码解密参数密文。还是使用Postman自带的加密函数cryptoJS,实现AES解密。sencrypt(word,keyStr):分别传递密文参数和上文中获取的AES密码;CryptoJS.enc.Utf8.parse(keyStr):进行格式转换;CryptoJS.enc.Base64.parse(word:进行转码;CryptoJS.enc.Base64.stringify(base64):加密哈希;CryptoJ.
2021-01-25 11:23:58
2141
2
原创 Postman报文进行解密之RSA私钥解密
接口返回的数据也是加密的,需要对数据解密才能看到返回的数据是否正确,就需要用RSA解密。返回数据的解析可以在postman的Tests进行后置处理,获取加密后的返回数据: vardata=JSON.parse(responseBody); varenc=data.data; varencdata=enc.encdata; varenckey=enc.enckey; 下面就对密文进行解密:解密函数priencrypt(),需要把...
2021-01-25 11:18:30
1150
原创 Postman报文进行加密之RSA公钥加密
RSA公钥加密和私钥加密整个结构是一致的,《Postman报文进行加密之RSA+Bate64》中私钥做的签名,这里RSA公钥是进行加密。 //--------RSA使用公钥对AES密码进行加密-------------// functionpubencrypt(pubencrypt_key,aeskey){ console.info('pubencrypt_key:'+pubencrypt_key); console.info('aeskey:'+...
2021-01-25 11:17:51
2104
原创 Postman报文进行加密之AES
Postman自带的加密函数是cryptoJS能够实现AES+Base64加密,还是用到Postman中的Pre-request Script。Pre-request Script是指在发送报文前执行的脚本,用于对请求包中的各种参数做一些个性化的处理。接上篇文章,实际获取的sText签名需要传递给源报文参数sign,报文内容如下signText,把报文作为一个整体进行AES加密。 //-------------------------AESBase64-------------------..
2021-01-25 11:16:34
4802
1
原创 Postman RSA+Bate64签名
最近在项目接口测试中使用postman进行工作,对于一般的非加密HTTP请求可以很方便直接的测试,但是有些需要签名验签的报文,就需要对报文进行加解密处理,在实际工作过程中,参考了网络上共享的资源,下面对自己工作过程做一次记录,以及自己遇到的问题进行补充。 大体说一下流程:请求的报文需要把参数(除sign)按照字母从a-z顺序先进行排序;对排序后参数的值拼接成字符串即成源字符串;用对方的RSA私钥对源字符串进行RSA算法加密生产签名sign值;把该值传递给参数sign,对新...
2021-01-25 11:15:56
1108
原创 Python+selenium自动化之31----Python Webdriver Exception速查表
selenium的基本使用方法30篇文章罗列的差不多,这篇文章主要把常见的异常文件,以便我们更好的理解问题并解决问题。【之前的系列文章为了统一性和连贯性,一直使用腾讯企业邮箱,接下的可能有些就不在使用该案例。】 异常 描述 WebDriverException 所有webdriver异常的基类,当有异常且不属于下列异常时抛出 InvalidSwitchToTargetException 下
2020-08-03 15:48:14
160
原创 Python+selenium自动化之30----EC模块之div弹窗
Python+selenium自动化之30----EC模块之div弹窗弹窗有div、alert、confirm、prompt等几类,div弹窗其实和普通元素没有区别, div弹框是否被隐藏,一般情况下可以获取div弹框属性都会有style="display: none;",none代表显示,如果出现属性值就是隐藏。有时候定位不到就可以结合EC、WebDriverWait设置等待,等到元素出现做出相应的操作。实例还是使用腾讯企业邮箱,查看邮件列表,选择已读邮件删除,这里选择把QC通知的邮件删除。图中.
2020-07-06 16:17:19
2540
原创 Python+selenium自动化之29----EC模块之element_located_selection_state_to_be
上一篇介绍selenium中一个模块expected_conditions判断文本是否存在的方法text_to_be_present_in_element。如果有多个选择框需要验证是否被勾选或取消勾选,就需要用到本篇文章介绍的方法element_located_selection_state_to_be。实例还是结合腾讯企业邮箱的使用。源码element_located_selection_state_to_beclass element_located_selection_state_to_
2020-06-23 15:19:46
1681
原创 Python+selenium自动化之28----EC模块之text_to_be_present_in_element
上一篇介绍selenium中一个模块expected_conditions的title_is和title_contains方法。 title_is:判断当前页面的title是否完全等于(==)预期字符串,返回是布尔值 title_contains判断当前页面的title是否包含预期字符串,返回布尔值 这里继续举例判断文本是否存在的方法text_to_be_present_in_element,比如判定进入某个页面后判定元素中是否存在指定的文本,当然结合腾讯企业邮箱的使用。.
2020-06-23 14:35:20
7300
原创 error: The instrumentation process cannot be initialized. APPium OPPO手机测试时遇到的问题
APPium OPPO手机测试时遇到的问题启动不了问题:selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: The instrumentation process cannot be initialized. Make sure the application under t
2020-06-15 16:38:38
2307
转载 自动化测试 appium 会报错 Could not proxy command to remote server. Original error: Error: socket hang up
appium 自动化测试 运行平台 vivo v191真机 驱动框架 UiAutomator2 现象 自动化代码在vivo手机上运行一段时间之后,appium 会报错 Could not proxy command to remote server. Original error: Error: socket hang up 同样的代码运行在其他手机上是不报错的,所以排除自动化代码的问题appium日志[debug] [W3C (9ae907c5)] Encountered internal
2020-06-15 16:35:53
1534
1
原创 Python+selenium自动化之26----等待
Selenium学习和使用过程中,比较常见的一个问题就是,弹窗定位不到、元素定位不到等,除了页面有frame、多窗口,就是没有加等待。代码运行的速度远远高于浏览器加载的速度,就像双人跑步运动,一个人快一个人慢总是会摔倒,浏览器页面没有加载出来元素,程序就执行相应的代码,就是抛出异常。等待,selenium中提供常用的三种:强制等待time.sleep()、隐性等待implicitly_wait()、显性等待WebDriverWait()。强制等待time.sleep()强制等待字面意思,强制程序
2020-06-15 16:24:41
326
原创 Python+selenium自动化之27----EC模块之title_is
在自动化测试中,判定元素是否存在是最常用到的,在Python+selenium自动化之25----判定元素是否存在中介绍一种方法,下面的几篇介绍selenium中一个模块expected_conditions,简称EC。引用EC如果需要使用EC,那么首先导入expected_conditions模块。EC模块16中判定方法包含的判定方法很多,可以通过查看expected_conditions.py的源码。title_is:判断当前页面的title是否完全等于(==)预期字符串,
2020-06-15 16:22:50
1677
原创 Python+selenium自动化之25----判定元素是否存在
在测试过程中,我碰到过这类的问题,使用find_element_by却找不到某个元素而产生异常,这就需要在操作某个元素之前判定该元素是否存在,而selenium中没有判定元素是否存在的方法,或者判定相同的元素有几个,需要操作对象是第几个。但是,有人已经总结一些相关的方式方法,下面还是通过实例说明。find_elements获取元素个数如果确定查找的元素在网页中只有一个,那么完全可以用find_element(),但如果有多个满足要求的节点,用find_element()就只能得到第一个节点了,所以查
2020-06-05 10:01:50
2307
5
原创 Python+selenium自动化之 元素属性获取
本篇文章主要分享如何获取元素属性的方法,其实在之前的文章中也有用到,本篇汇总一下方便自己学习和回顾。案例还是以腾讯企业邮箱为例。获取元素文本获取元素文本是比较常用到的,如在邮箱登录页,获取“同时支持企业微信和微信扫码”的文本,这种可以看到的文本可以使用driver.text获取该内容。查看元素属性:<div class="wework_login_subtitle">同时支持企业微信和微信扫码</div>获取title浏览器title的获取很直..
2020-06-03 08:49:38
3750
原创 Python+selenium自动化之23----文件上传
邮箱的主要功能就是邮件消息的收发阅读,之前的文章写了邮件的查收和编写,本篇介绍邮件的附件上传。还是以腾讯企业邮箱为例,进行实际案例操作。文件上传的实现大体分为两种,一种是input标签,一种非input标签。腾讯企业邮箱里的附件上传都是input标签,如下图所示:编写邮件,首先登陆邮箱,进入写信页面,按照一般习惯我们会先写收件人、主题、添加附件和正文。对于input标签类型的文件上传,操作简单粗暴,使用send_keys()直接把需要上传的文件路径正确的写进去即可。上传成功如下图所示:
2020-05-26 20:50:44
210
原创 Python+selenium自动化之22----js定位一般用法介绍
Js定位本篇文章主要介绍js定位的一般使用方法,Selenium提供8种元素定位的方法:id,name,class name,link text,xpath,css selector,tag name ,partial link tex。其实还有js定位方法。Js语句通常使用driver.execute_script()进行调用。根据id定位使用getElementById(),.value相当于send_keys(),把字符串写入到搜索框。根据classname定位使用classn
2020-05-22 17:14:45
2168
原创 Python+selenium自动化之21----js富文本定位
本篇和上一篇文章Python+selenium自动化之20----写邮件与富文本定位基本内容一样,仅仅把富文本定位和操作使用JS实现,对JS用法不了解不熟悉的可以百度学习下,或者等着我出一期专门的js用法的文章。从下图可以看出,正文编辑框属于div式的editor框iframe的id不是固定的,这里使用js用法document.getElementsByClassName()[],注意这里elements要有s,获取的是一个list,要对首位进行操作需要加[0]。contentWindow返...
2020-05-22 17:09:45
630
原创 Python+selenium自动化之20----写邮件与富文本定位
邮箱的主要功能就是邮件消息的收发阅读,之前的文章写了邮件的查收,本篇介绍邮件的编写及正文富文本的定位。还是以腾讯企业邮箱为例,进行实际案例操作。编写邮件登陆邮箱后,点击左侧控制台中的“写信”,进入邮件编辑窗口,需要输入收件人、主题和正文,有时候还需要选取附件、添加图片等操作。富文本定位邮件编辑窗口在一个iframe,需要先进入iframe才可以定位收件人、主题和正文等元素。正文通常为富文本,使用查看器在下图中可以看到正文是在一个iframe里,就需要首先是进入ifram.
2020-05-20 16:18:26
632
原创 Python+selenium自动化之19----table定位
本篇文章主要说明table表格的定位。还是使用腾讯企业邮箱里的元素进行实例操作。什么是tableTable是一个数据库控件,主要用于在web页面上创建表格,其功能与HtmlTable类似。不同的是,Table控件可以用动态的内容以编程的方式来生成表格。〈table〉...〈/table〉 - 定义表格〈th〉 - 定义表头〈tr〉 - 定义表行〈td〉 - 定义表元(表格的具体数据)企业邮箱企业邮箱设置中的文件夹和标签页,系统文件夹的内容就是一个表格。查看页面元.
2020-05-20 16:15:54
1771
原创 Python+selenium自动化之18----单复选框操作
本篇文章还是使用腾讯企业邮箱,介绍单选框和复选框的操作。首先认识下单选框和复选框。上一篇介绍滚动条的文章中,邮箱设置页面就有这两种元素。单选框单选框:只能选中一项命令。是图形用户界面上的一种控件。它容许用户在一组选项中选择其中一个。单选框的外观一般是一个空白的圆洞。而在它的旁边则通常有一个文字的标签。它的用途除了描述之外,还可用于选择该选择:当用户按下标签,所应的选择钮就会被选上。已选上的选择钮一般会在圆洞内加上一小圆点。查看页面元素,文字大小单选框如下显示:..
2020-05-19 08:48:21
1491
原创 Python+selenium自动化之17----元素内置滚动条
上一篇文章介绍了浏览器滚动条,这篇文章介绍内置滚动条的操作。同样需要结合js对元素进行定位操作。介绍还是使用腾讯企业邮箱,查看邮箱设置-常规页面信息设置项很多,需要上下滑动滚动条进行查看或修改。常规设置页从图中可以看出,页面中有两个滚动条,外侧为浏览器滚动条,内侧为页面元素的滚动条,浏览器滚动条上一篇文章介绍了,这次主要介绍内置滚动条。F12查看页面元素,...
2020-04-28 09:54:48
661
原创 Python+selenium自动化之16----浏览器滚动条
当页面长度超过一页屏幕时,如果需要定位的元素在下一屏幕,直接定位会报错:元素不可见。这时候就需要滑动浏览器的滚动条,滑动到该元素的页面再进行定位才可以成功。滚动条在selenium中没有直接的操作方法,需要使用js并结合selenium提供的execute_script()方法,达到操作滚动条的目的。介绍还是使用腾讯企业邮箱,查看已删除目录下的删信记录查询中登陆查询信息很多,需要上下滑动...
2020-04-28 09:53:00
1292
原创 Python+selenium自动化之15----下拉列表操作02
Python+selenium自动化之15----select下拉列表操作下拉列表操作中分为两种:select、非selectSelect下拉列表操作下面还是以企业邮箱为例,介绍select下拉列表相关操作方法。Select下拉列表登录企业邮箱后,点击设置,进入设置页,图中绿框中的就是select下拉元素。图中语言设置默认语言为“自动选择”,三个选择分别为“自动选择”“简体中文...
2020-04-26 13:59:34
346
原创 Python+selenium自动化之14----下拉列表操作01
下拉列表操作中分为两种:select、非select非select下拉列表操作非select下拉列表的操作与其他元素的操作一致,定位元素,设置等待,操作元素。下面还是以腾讯邮箱为例,查看一封邮件并将其移动到其他文件夹下。其中点击“移动到”元素弹窗一个下拉列表。登陆邮箱并查看邮件详细过程可以查看上一篇文章内容。移动邮件到QC ----下拉列表操作F12查看“移动到…”...
2020-04-26 13:58:03
304
1
原创 Python+selenium自动化测试之13----iframe嵌套定位
iframe是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)。可以把需要的文本放置在<iframe>和</iframe>之间,这样就可以应对无法理解iframe的浏览器。浏览器支持 还是以腾讯邮件为例,上一篇文章中,邮件列表就是iframe框架内。Iframe切换邮件列表在ifr...
2020-04-07 22:26:25
879
转载 Python+selenium自动化测试之8 CSS定位元素
上文介绍了使用xpath定位元素的常用方法,熟练运用xpath基本可以满足元素定位的需求。CSS与之相比,功能同样强大,并且语法更简洁,定位更快速。一、css:属性定位1.css可以通过元素的id、class、标签这三个常规属性直接定位到2.如下是百度输入框的的html代码:<inputid="kw"class="s_ipt"type="text"au...
2020-04-07 13:40:14
280
原创 Python+selenium自动化测试之12----find_elements一组元素定位
本篇文章主要写一个好用的插件Ranorex Selocity。Firefox浏览器的元素定位插件大家比较熟悉和使用的是Firebug和Firepath(百度搜索基本还是这些插件的使用介绍,之前用的也是相当的方便),但是Firefox在54版本后,用了全新的内核引擎,这些插件都不在支持。Firebug也不再维护,最新一次更新停留在2017。而Firebug作为Firepath安装使用的前提,自然...
2020-04-05 16:34:06
2036
原创 selenium自动化之7 定位方法大杀器xpath
selenium的几种定位方法中,大杀器之一就是xpath方法,学会它,你将无所不能。#定位 找到元素 -- 做到唯一识别#优先使用id#舍弃:有下标的出现、有绝对定位的出现、id动态变化时舍弃一、xpath:基本属性定位上一篇文章讲了通过元素的id、name、class这些属性定位的用户,使用xpath方法结合元素属性也可以很准确的定位元素,如下图 于是...
2020-04-04 16:16:07
216
原创 Python+selenium自动化之11----鼠标键盘事件
实际工作中,可能会遇到某个页面元素,必须要把鼠标移动到上面才能显示出元素,或者元素需要鼠标双击等,或者需要键盘点击某个按键,那么这类操作, selenium给我们提供了ActionChains类,处理这些事件。一、鼠标事件ActionChains类可以模拟鼠标单击、双击、点击鼠标右键、拖拽等等操作事件。模拟鼠标操作需要先导入模块from selenium.webdriver.common....
2020-04-04 16:08:54
638
原创 Python+selenium自动化之10----邮箱登陆
Python+selenium自动化之10----邮箱登陆前面的文章讲述的selenium的基本知识和相关辅助工具,从本篇文章开始进入实际操作,俗话说好记性不如烂笔头,只有自己多看多练,才能熟练掌握相关语法、工具的使用,使用多了才能得心应手。下面以腾讯企业邮箱登陆,先一步一步的把登陆流程写出来,然后再做调整优化。一、邮箱用户登陆1.启动浏览器(Firefox或chrome随你喜...
2020-04-03 17:31:16
553
原创 Python+selenium自动化测试之9----selenium定位辅助工具Ranorex Selocity
本篇文章主要写一个好用的Selenium定位辅助工具-Ranorex Selocity。Firefox浏览器的元素定位插件大家比较熟悉和使用的是Firebug和Firepath(百度搜索基本还是这些插件的使用介绍,之前用的也是相当的方便),但是Firefox在54版本后,用了全新的内核引擎,这些插件都不在支持。Firebug也不再维护,最新一次更新停留在2017。而Firebug作为Firep...
2020-04-01 23:42:56
1012
原创 Python+selenium自动化测试之五-浏览器基础操作
前言前面的四篇文章已经介绍了环境搭建的基本流程和操作,下面我们开始学习selenium测试,本文主要讲解webdriber框架。Selenium 就像真实用户所做的一样,Selenium 测试可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Chrome和 Firefox 中运行。当然如果为了可视化你可以在浏览器使用selenium的IDE插件...
2020-03-17 18:07:49
376
原创 芭芭拉--金字塔原理——读后感
金字塔原理主要讲述结构化思维,但是结构化思维并不是固化的思维,而是在面临问题或事情时,一种解决问题、处理问题的框架,在这个框架里可以使用结构化思维、系统思维、发散思维等等方法,最终目的是找到解决问题的办法。结构化思维最难的地方是提出假设,假设问题是怎么样的?由该假设去分析可能的点,然后对各个点进行分解,各个点之间可以是哦那个归纳推理或者演绎推理,最终验证假设的正确性。需要注意,假设并不等于...
2020-03-06 16:56:36
735
转载 海上钢琴师--豆瓣评论
俗人理解不了的幸福关于钢琴,关于尽头,关于彼岸,这些我都不想说。我只想说说1900这个人。众人叫他天才,众人为之疯狂。1900,从拥有这个不平凡的名字起,就注定是个不平凡的人。目光、掌声和荣耀,平凡人可能终其一生都得不到的东西,对于天才的1900就像空气一样稀松平常。但目光、掌声和荣耀并不能令人幸福,也不长久。电影里有一个镜头让我特别难受:人们围绕在1900身边为音乐起舞的时候,有人看见...
2019-12-27 09:22:41
217
转载 如果你自己不做出努力的样子,即使人家想拉你,都不知道你的手在哪。
00 人生没有奇迹,指望别人你就输了人这一生,为什么要努力?有人回答说:“做一个努力的人的好处在于,人人见了你都想帮你一把;如果你自己不做出努力的样子,即使人家想拉你,都不知道你的手在哪。”是啊,人之所以要努力,是为了要把命运攥在自己手里。过于依赖别人、指望别人成全自己的人生,到头来,输的还是自己。公司之前有一个实习生,学历不错,名牌大学毕业...
2019-11-28 13:44:57
1224
原创 微信支付元素可以获取到,但是无法点击操作
UI如图:Automator 截图使用Xpath accessibility均无法定位到“微信支付”driver.find_element_by_accessibility_id("javascript:void(0)").click()driver.find_element_by_xpath("//android.webkit.WebView[@content-desc=...
2019-08-20 10:35:25
386
原创 Appium android手机横竖屏切换
Appium对Android系统的手机横竖屏切换的http://appium.io/docs/en/commands/session/orientation/get-orientation/定义。实际应用,切换横屏如下driver.orientation = "LANDSCAPE"切换竖屏如下driver.orientation = "PORTRAIT"但是,在实际使用过程中...
2019-08-12 09:46:56
948
原创 Appium兄弟节点(preceding-sibling::)和弟弟节点(following-sibling::)的使用
定位图中红色框内的元素,应为它们只有同样的class,使用Xpath也可以定位(driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/ android.widget.FrameLayout/...
2019-08-08 14:56:15
2426
TA创建的收藏夹 TA关注的收藏夹
TA关注的人