<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tiekun888的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tiekun888</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tiekun888]]></copyright><item><title><![CDATA[linux查看内存信息、个数]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/143158523</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/143158523</guid><author>tiekun888</author><pubDate>Tue, 22 Oct 2024 15:09:46 +0800</pubDate><description><![CDATA[linux查看内存信息、个数]]></description><category></category></item><item><title><![CDATA[linux 查看CPU信息 核心数 逻辑核心数]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/143157667</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/143157667</guid><author>tiekun888</author><pubDate>Tue, 22 Oct 2024 14:56:35 +0800</pubDate><description><![CDATA[linux 查看CPU信息 核心数 逻辑核心数]]></description><category></category></item><item><title><![CDATA[Cypress初次安装启动常见问题]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/142385673</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/142385673</guid><author>tiekun888</author><pubDate>Fri, 20 Sep 2024 15:02:42 +0800</pubDate><description><![CDATA[Cypress初次安装启动常见问题]]></description><category></category></item><item><title><![CDATA[Cypress安装与启动（开始学习记录）]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/142383520</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/142383520</guid><author>tiekun888</author><pubDate>Fri, 20 Sep 2024 14:10:49 +0800</pubDate><description><![CDATA[Cypress的安装和启动]]></description><category></category></item><item><title><![CDATA[Postman RSA+Bate64验签]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/119183623</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/119183623</guid><author>tiekun888</author><pubDate>Wed, 28 Jul 2021 16:32:59 +0800</pubDate><description><![CDATA[在之前写的日志《https://mp.youkuaiyun.com/mp_blog/creation/editor/113105977》中写了RSA签名，忘记写了验签，现在补上该部分。

 结合上述文档，获取到服务端返回的数据后，需要使用自己渠道的私钥获取到AES密码key，然后使用key解密出返回的源数据和sign，根据源数据使用服务端的公钥进行验签。

 引入forge.js

因为postman自带的加密函数是cryptoJS，不能满足数字RSA-SHA1签名，即java里的SHA1WithRSA...]]></description><category></category></item><item><title><![CDATA[Postman报文进行解密之AES]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/113106345</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/113106345</guid><author>tiekun888</author><pubDate>Mon, 25 Jan 2021 11:23:58 +0800</pubDate><description><![CDATA[上文中使用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.]]></description><category></category></item><item><title><![CDATA[Postman报文进行解密之RSA私钥解密]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/113106187</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/113106187</guid><author>tiekun888</author><pubDate>Mon, 25 Jan 2021 11:18:30 +0800</pubDate><description><![CDATA[接口返回的数据也是加密的，需要对数据解密才能看到返回的数据是否正确，就需要用RSA解密。

返回数据的解析可以在postman的Tests进行后置处理，获取加密后的返回数据：


			vardata=JSON.parse(responseBody);

			varenc=data.data;

			varencdata=enc.encdata;

			varenckey=enc.enckey;
			
		下面就对密文进行解密：



解密函数priencrypt（），需要把...]]></description><category></category></item><item><title><![CDATA[Postman报文进行加密之RSA公钥加密]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/113106144</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/113106144</guid><author>tiekun888</author><pubDate>Mon, 25 Jan 2021 11:17:51 +0800</pubDate><description><![CDATA[RSA公钥加密和私钥加密整个结构是一致的，《Postman报文进行加密之RSA+Bate64》中私钥做的签名，这里RSA公钥是进行加密。


			//--------RSA使用公钥对AES密码进行加密-------------//

			functionpubencrypt(pubencrypt_key,aeskey){

			console.info('pubencrypt_key:'+pubencrypt_key);

			console.info('aeskey:'+...]]></description><category></category></item><item><title><![CDATA[Postman报文进行加密之AES]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/113106124</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/113106124</guid><author>tiekun888</author><pubDate>Mon, 25 Jan 2021 11:16:34 +0800</pubDate><description><![CDATA[Postman自带的加密函数是cryptoJS能够实现AES+Base64加密，还是用到Postman中的Pre-request Script。Pre-request Script是指在发送报文前执行的脚本，用于对请求包中的各种参数做一些个性化的处理。

接上篇文章，实际获取的sText签名需要传递给源报文参数sign，报文内容如下signText，把报文作为一个整体进行AES加密。


			//-------------------------AESBase64-------------------..]]></description><category></category></item><item><title><![CDATA[Postman RSA+Bate64签名]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/113105977</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/113105977</guid><author>tiekun888</author><pubDate>Mon, 25 Jan 2021 11:15:56 +0800</pubDate><description><![CDATA[最近在项目接口测试中使用postman进行工作，对于一般的非加密HTTP请求可以很方便直接的测试，但是有些需要签名验签的报文，就需要对报文进行加解密处理，在实际工作过程中，参考了网络上共享的资源，下面对自己工作过程做一次记录，以及自己遇到的问题进行补充。

 大体说一下流程：

请求的报文需要把参数（除sign）按照字母从a-z顺序先进行排序；

对排序后参数的值拼接成字符串即成源字符串；

用对方的RSA私钥对源字符串进行RSA算法加密生产签名sign值；

把该值传递给参数sign，对新...]]></description><category></category></item><item><title><![CDATA[Python+selenium自动化之31----Python Webdriver Exception速查表]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/107765572</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/107765572</guid><author>tiekun888</author><pubDate>Mon, 03 Aug 2020 15:48:14 +0800</pubDate><description><![CDATA[selenium的基本使用方法30篇文章罗列的差不多，这篇文章主要把常见的异常文件，以便我们更好的理解问题并解决问题。

【之前的系列文章为了统一性和连贯性，一直使用腾讯企业邮箱，接下的可能有些就不在使用该案例。】


			异常
			
			
			描述
			
		
			WebDriverException
			
			
			所有webdriver异常的基类，当有异常且不属于下列异常时抛出
			
		
			InvalidSwitchToTargetException
			
			
			下]]></description><category></category></item><item><title><![CDATA[Python+selenium自动化之30----EC模块之div弹窗]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/107161462</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/107161462</guid><author>tiekun888</author><pubDate>Mon, 06 Jul 2020 16:17:19 +0800</pubDate><description><![CDATA[Python+selenium自动化之30----EC模块之div弹窗

弹窗有div、alert、confirm、prompt等几类，div弹窗其实和普通元素没有区别， div弹框是否被隐藏，一般情况下可以获取div弹框属性都会有style="display: none;"，none代表显示，如果出现属性值就是隐藏。有时候定位不到就可以结合EC、WebDriverWait设置等待，等到元素出现做出相应的操作。

实例还是使用腾讯企业邮箱，查看邮件列表，选择已读邮件删除，这里选择把QC通知的邮件删除。图中.]]></description><category></category></item><item><title><![CDATA[Python+selenium自动化之29----EC模块之element_located_selection_state_to_be]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/106924324</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/106924324</guid><author>tiekun888</author><pubDate>Tue, 23 Jun 2020 15:19:46 +0800</pubDate><description><![CDATA[上一篇介绍selenium中一个模块expected_conditions判断文本是否存在的方法text_to_be_present_in_element。如果有多个选择框需要验证是否被勾选或取消勾选，就需要用到本篇文章介绍的方法element_located_selection_state_to_be。

实例还是结合腾讯企业邮箱的使用。

源码element_located_selection_state_to_be


class element_located_selection_state_to_]]></description><category></category></item><item><title><![CDATA[Python+selenium自动化之28----EC模块之text_to_be_present_in_element]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/106923011</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/106923011</guid><author>tiekun888</author><pubDate>Tue, 23 Jun 2020 14:35:20 +0800</pubDate><description><![CDATA[上一篇介绍selenium中一个模块expected_conditions的title_is和title_contains方法。


			title_is:判断当前页面的title是否完全等于（==）预期字符串，返回是布尔值

			title_contains判断当前页面的title是否包含预期字符串，返回布尔值
			
		这里继续举例判断文本是否存在的方法text_to_be_present_in_element，比如判定进入某个页面后判定元素中是否存在指定的文本，当然结合腾讯企业邮箱的使用。

.]]></description><category></category></item><item><title><![CDATA[error: The instrumentation process cannot be initialized. APPium OPPO手机测试时遇到的问题]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/106765575</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/106765575</guid><author>tiekun888</author><pubDate>Mon, 15 Jun 2020 16:38:38 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[自动化测试 appium 会报错 Could not proxy command to remote server. Original error: Error: socket hang up]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/106624071</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/106624071</guid><author>tiekun888</author><pubDate>Mon, 15 Jun 2020 16:35:53 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[Python+selenium自动化之26----等待]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/106765124</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/106765124</guid><author>tiekun888</author><pubDate>Mon, 15 Jun 2020 16:24:41 +0800</pubDate><description><![CDATA[Selenium学习和使用过程中，比较常见的一个问题就是，弹窗定位不到、元素定位不到等，除了页面有frame、多窗口，就是没有加等待。代码运行的速度远远高于浏览器加载的速度，就像双人跑步运动，一个人快一个人慢总是会摔倒，浏览器页面没有加载出来元素，程序就执行相应的代码，就是抛出异常。

等待，selenium中提供常用的三种：强制等待time.sleep()、隐性等待implicitly_wait()、显性等待WebDriverWait()。

强制等待time.sleep()

强制等待字面意思，强制程序]]></description><category></category></item><item><title><![CDATA[Python+selenium自动化之27----EC模块之title_is]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/106765069</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/106765069</guid><author>tiekun888</author><pubDate>Mon, 15 Jun 2020 16:22:50 +0800</pubDate><description><![CDATA[在自动化测试中，判定元素是否存在是最常用到的，在Python+selenium自动化之25----判定元素是否存在中介绍一种方法，下面的几篇介绍selenium中一个模块expected_conditions，简称EC。​

引用EC

如果需要使用EC，那么首先导入expected_conditions模块。



EC模块16中判定方法

包含的判定方法很多，可以通过查看expected_conditions.py的源码。



title_is:判断当前页面的title是否完全等于（==）预期字符串，]]></description><category></category></item><item><title><![CDATA[Python+selenium自动化之25----判定元素是否存在]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/106564370</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/106564370</guid><author>tiekun888</author><pubDate>Fri, 05 Jun 2020 10:01:50 +0800</pubDate><description><![CDATA[在测试过程中，我碰到过这类的问题，使用find_element_by却找不到某个元素而产生异常，这就需要在操作某个元素之前判定该元素是否存在，而selenium中没有判定元素是否存在的方法，或者判定相同的元素有几个，需要操作对象是第几个。但是，有人已经总结一些相关的方式方法，下面还是通过实例说明。

find_elements获取元素个数

如果确定查找的元素在网页中只有一个,那么完全可以用find_element(),但如果有多个满足要求的节点,用find_element()就只能得到第一个节点了,所以查]]></description><category></category></item><item><title><![CDATA[Python+selenium自动化之 元素属性获取]]></title><link>https://blog.youkuaiyun.com/tiekun888/article/details/106516578</link><guid>https://blog.youkuaiyun.com/tiekun888/article/details/106516578</guid><author>tiekun888</author><pubDate>Wed, 03 Jun 2020 08:49:38 +0800</pubDate><description><![CDATA[本篇文章主要分享如何获取元素属性的方法，其实在之前的文章中也有用到，本篇汇总一下方便自己学习和回顾。案例还是以腾讯企业邮箱为例。



获取元素文本

获取元素文本是比较常用到的，如在邮箱登录页，获取“同时支持企业微信和微信扫码”的文本，这种可以看到的文本可以使用driver.text获取该内容。

查看元素属性：&lt;div class="wework_login_subtitle"&gt;同时支持企业微信和微信扫码&lt;/div&gt;







获取title

浏览器title的获取很直..]]></description><category></category></item></channel></rss>