<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CjhLoveAndroid的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CjhLoveAndroid</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CjhLoveAndroid]]></copyright><item><title><![CDATA[Facebook-wda方法介绍---总结归纳一些疑惑点]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/131095361</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/131095361</guid><author>CjhLoveAndroid</author><pubDate>Thu, 08 Jun 2023 15:21:50 +0800</pubDate><description><![CDATA[类的一个方法，用于在元素指定位置模拟点击操作。可以指定相对于元素左上角的 x 和 y 坐标位置，也可以不指定。类的一个方法，用于等待指定元素在一定时间内出现并返回该元素。方法适用于需要在元素上按住一段时间后再执行操作的场景，比如长按图片弹出菜单。类的一个方法，用于模拟按住操作。可以指定按住的时间，以毫秒为单位。类的一个方法，用于检查元素是否可见。类的一个方法，用于检查元素是否存在。方法适用于需要在元素指定位置进行点击操作的场景。方法适用于需要在整个元素上进行点击操作的场景。类的一个方法，用于模拟点击操作。]]></description><category></category></item><item><title><![CDATA[Window搭建IOS App自动化测试环境]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/131074687</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/131074687</guid><author>CjhLoveAndroid</author><pubDate>Tue, 06 Jun 2023 20:36:56 +0800</pubDate><description><![CDATA[在window系统可以跑IOS自动化脚本，得力于tidevice这个工具，tidevice 是阿里开源的一个基于Python的iOS自动化工具，通过逆向iOS通信协议，模拟xcodebuild与手机进行通信，向手机发送特定的指令，来启动WDA，从而可以脱离Mac电脑，能够在Linux、Windows上运行iOS自动化。tidevice基于python实现了libimobiledevice中的功能。]]></description><category></category></item><item><title><![CDATA[Docker使用]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/130993745</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/130993745</guid><author>CjhLoveAndroid</author><pubDate>Thu, 01 Jun 2023 18:20:15 +0800</pubDate><description><![CDATA[创建容器：docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql。进入容器：docker exec -it my-container bash。开始容器：docker start <容器名称或ID>停止容器：docker stop <容器名称或ID>删除容器：docker rm <容器名称或容器ID>获取容器镜像：docker pull mysql。查看所有容器：docker ps -a。]]></description><category></category></item><item><title><![CDATA[Matter Test-Harness自动化测试系统]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/127684527</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/127684527</guid><author>CjhLoveAndroid</author><pubDate>Fri, 04 Nov 2022 12:19:12 +0800</pubDate><description><![CDATA[Matter测试之TH自动化测试]]></description><category></category></item><item><title><![CDATA[使用树莓派搭建Matter开发环境]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/127516686</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/127516686</guid><author>CjhLoveAndroid</author><pubDate>Tue, 25 Oct 2022 17:51:47 +0800</pubDate><description><![CDATA[树莓派烧录Debian11系统，以及系统安装，最后重要的如何搭建Matter开发环境]]></description><category></category></item><item><title><![CDATA[Python+QT5小工具开发：subprocess.Popen执行adb命令获取截图]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/118858244</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/118858244</guid><author>CjhLoveAndroid</author><pubDate>Sat, 17 Jul 2021 16:16:10 +0800</pubDate><description><![CDATA[一：使用工具

Python3.7+QT5

二：代码



三：运行效果

点击一键截图按钮，然后选择保存文件，亲测有效。








]]></description><category></category></item><item><title><![CDATA[selenium定位下拉菜单]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103905284</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103905284</guid><author>CjhLoveAndroid</author><pubDate>Thu, 09 Jan 2020 11:54:51 +0800</pubDate><description><![CDATA[1.select标签

def select():
    driver = webdriver.Firefox()
    driver.maximize_window()
    driver.implicitly_wait(10)
    driver.get('http://www.baidu.com')
    #鼠标悬停“设置”链接
    element = driver.find_...]]></description><category></category></item><item><title><![CDATA[appium app自动化测试（满满的干货）]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103809538</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103809538</guid><author>CjhLoveAndroid</author><pubDate>Thu, 02 Jan 2020 21:48:30 +0800</pubDate><description><![CDATA[环境搭建：https://blog.youkuaiyun.com/u013314786/article/details/83216390
真机运行：https://blog.youkuaiyun.com/MenofGod/article/details/82221358
app页面元素获取：https://www.cnblogs.com/Lixinhang/p/10954759.html
AndroidSDK-&gt;t...]]></description><category></category></item><item><title><![CDATA[selenium web自动化判断页面元素加载完毕]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103730522</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103730522</guid><author>CjhLoveAndroid</author><pubDate>Fri, 27 Dec 2019 15:41:47 +0800</pubDate><description><![CDATA[主要方便以后用到时查阅，侵删！
三种等待方法：
1.强制等待sleep(xx)
强制等待，不管你浏览器是否加载完了，程序都得等待，时间一到，继续执行下面的代码，作为调试很有用，有时候也可以在代码里这样等待，不过不建议总用这种等待方式，太死板，严重影响程序执行速度。
2.隐性等待implicitly_wait(xx)
隐形等待是设置了一个最长等待时间，如果在规定时间内网页加载完成，则执行下一步，否则...]]></description><category></category></item><item><title><![CDATA[pageObject+unittest+selenium实现UI自动化测试]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103671035</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103671035</guid><author>CjhLoveAndroid</author><pubDate>Mon, 23 Dec 2019 18:26:31 +0800</pubDate><description><![CDATA[1.为什么要使用pageObject设计模式
Page Object 模式是selenium自动化测试项目开发最佳测试设计模式，主要体现在对界面交互细节的封装，这样使得测试案例更加注重页面而不是界面细节。从而提高测试用例的可读性；减少了代码的重复；提高测试用例的可维护性，特别是针对UI频繁变动的项目。
2.设计思想
Page Object模式主要是将每个页面设计为一个类class，这个类包含页面中...]]></description><category></category></item><item><title><![CDATA[Python之Qt5界面开发]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103663793</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103663793</guid><author>CjhLoveAndroid</author><pubDate>Mon, 23 Dec 2019 13:42:38 +0800</pubDate><description><![CDATA[1.环境配置
1.1.添加qt库
pip install pyqt5
pip install  pyqt5-tools
1.2.Pycharm相关配置:


Arguments：-m PyQt5.uic.pyuic FileNameFileNameFileName -o FileNameWithoutExtensionFileNameWithoutExtensionFileNameWithoutE...]]></description><category></category></item><item><title><![CDATA[MySQL多表查询（内连接和外连接）]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103606076</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103606076</guid><author>CjhLoveAndroid</author><pubDate>Wed, 18 Dec 2019 22:58:14 +0800</pubDate><description><![CDATA[新建两张表a_table和b_table，如果把表格当作一个集合，那么表格中的记录就是集合中的一个元素。
表a：

表b：

1.内连接（只有一种场景）
select a.,b. from a_table a inner join b_table b on a.a_id=b.b_id;
或
select a.,b. from a_table a join b_table b on a.a_id=b...]]></description><category></category></item><item><title><![CDATA[python爬取豆瓣影评并写入文件]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103602380</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103602380</guid><author>CjhLoveAndroid</author><pubDate>Wed, 18 Dec 2019 18:54:08 +0800</pubDate><description><![CDATA[1.获得豆瓣影评接口

按浏览器F12调试，点开参数，查看url一栏：
所有评论：url：https://movie.douban.com/subject/27119724/comments?status=P
某一页的评论：url: https://movie.douban.com/subject/27119724/comments?start=40&amp;limit=20&amp;sort=n...]]></description><category></category></item><item><title><![CDATA[接口测试之unittest参数化（paramunittest）]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103568868</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103568868</guid><author>CjhLoveAndroid</author><pubDate>Mon, 16 Dec 2019 19:55:16 +0800</pubDate><description><![CDATA[参数化的框架paramunittest，可以传入多组参数，自动生成多个用例
导入两个包：
import unittest
import paramunittest
待测试的接口数据：yaml文件
#以-开头，读出为列表
 - case_name: 'login_pass'
   user: 'admin1'
   pwd: '123456'
   code: '200'
  
 - case_na...]]></description><category></category></item><item><title><![CDATA[python读写Excel表格（简单实用）]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103566321</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103566321</guid><author>CjhLoveAndroid</author><pubDate>Mon, 16 Dec 2019 17:22:31 +0800</pubDate><description><![CDATA[安装两个库：pip install xlrd、pip install xlwt
1.python读excel——xlrd
2.python写excel——xlwt
1.读excel数据，包括日期等数据
#coding=utf-8
import xlrd
import datetime
from datetime import date
def read_excel():
    #打开文件
   ...]]></description><category></category></item><item><title><![CDATA[python读写文件]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103562932</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103562932</guid><author>CjhLoveAndroid</author><pubDate>Mon, 16 Dec 2019 15:02:17 +0800</pubDate><description><![CDATA[读文件：
#with语句会自动帮我们调用close()方法
with open("test.txt",'r') as fp:
    #print(fp.read())
    #read():每次读取整个文件
    #readline():一次读取整个文件，自动将文件内容分析成一个行的列表
    #readlines():每次只读取一行
    list1 = fp.readlines()
...]]></description><category></category></item><item><title><![CDATA[python日志打印之log封装]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103560610</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103560610</guid><author>CjhLoveAndroid</author><pubDate>Mon, 16 Dec 2019 13:13:07 +0800</pubDate><description><![CDATA[使用logging四大组件记录日志


需求
现在有以下几个日志记录的需求：
1）要求将所有级别的所有日志都写入磁盘文件中
2）all.log文件中记录所有的日志信息，日志格式为：日期和时间 - 日志级别 - 日志信息
3）error.log文件中单独记录error及以上级别的日志信息，日志格式为：日期和时间 - 日志级别 - 文件名[:行号] - 日志信息
4）要求all.log在每天凌晨进行日...]]></description><category></category></item><item><title><![CDATA[Python调用outlook发送邮件]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103558386</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/103558386</guid><author>CjhLoveAndroid</author><pubDate>Mon, 16 Dec 2019 10:55:18 +0800</pubDate><description><![CDATA[#coding=UTF-8
from testCase.readConfig import ReadConfig
import os
import win32com.client as win32
import datetime
import pythoncom

pythoncom.CoInitialize()
#读取邮件主题
subject = ReadConfig().get_email('...]]></description><category></category></item><item><title><![CDATA[IntentService的使用]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/88562997</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/88562997</guid><author>CjhLoveAndroid</author><pubDate>Thu, 14 Mar 2019 22:33:32 +0800</pubDate><description><![CDATA[IntentService是继承于Service和处理异步请求的一个类。

在IntentService内有一个工作线程来处理耗时操作，启动IntentService和传统的Service一样，但是当任务执行完成后，IntentService会自动停止，不需要手动停止。IntentService可以启动多次，并且每一个耗时操作会以工作队列的方式在IntentService的onHandleInte...]]></description><category></category></item><item><title><![CDATA[sleep()和wait()的区别]]></title><link>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/88367470</link><guid>https://blog.youkuaiyun.com/CjhLoveAndroid/article/details/88367470</guid><author>CjhLoveAndroid</author><pubDate>Sat, 09 Mar 2019 16:08:56 +0800</pubDate><description><![CDATA[sleep()和wait()的区别：

首先sleep()是Thread类的方法,wait()是Object类中定义的方法。

主要有以下几点区别：

1.当线程调用sleep()进入休眠时，不会释放对象锁；而调用wait()进入休眠时，会释放对象锁；

2.sleep()方法可以在任何地方调用，而wait()只能在synchronized修饰的函数或者代码块中调用；

线程状态：



...]]></description><category></category></item></channel></rss>