![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
UI自动化
文章平均质量分 54
webUI及APP自动化
adorable_
这个作者很懒,什么都没留下…
展开
-
【已解决】执行UI自动化脚本报错AttributeError: ‘WebDriver‘ object has no attribute ‘w3c‘
通过官网源码安装Appium-Python-Client 2.1.2版本后运行脚本报错原创 2022-07-11 18:58:07 · 1231 阅读 · 0 评论 -
【已解决】本地安装mitmproxy后执行mitmproxy --version报错:ModuleNotFoundError: No module named ‘_cffi_backend‘
【已解决】本地安装mitmproxy后执行mitmproxy --version报错:ModuleNotFoundError: No module named '_cffi_backend'原创 2022-06-17 17:25:02 · 1256 阅读 · 0 评论 -
最简单的安装Appium-Python-Client方法
前提:Python环境已配置1、官网下载源码:https://pypi.org/project/Appium-Python-Client/#files也可下载历史版本:2、解压下载后的包3、进入appium-python-client 的解压路径下输入:python setup.py install , 回车即可安装成功...原创 2022-04-21 18:27:52 · 4426 阅读 · 1 评论 -
UIAutomator2的使用教程
uiautomator2是一个python库,用于Android的UI自动化测试,其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作。原创 2021-12-17 18:57:19 · 38312 阅读 · 3 评论 -
【已解决】cannot connect to daemon at tcp:5037: 由于目标计算机积极拒绝,无法连接
原因:5037端口号被其他应用占用方法一:杀死5037端口号下的进程netstat -ano | findstr 5037 //列出进程及其占用的端口,且包含 5037tasklist | findstr 进程号 //查看进程号下的进程taskkill -PID <进程号> -F //强制关闭某个进程(如果步骤2执行后结果不是adb.exe则执行此步骤)方法二:kill 服务adb kill-serveradb start-server方法三:模拟器kil原创 2021-05-10 11:29:28 · 30071 阅读 · 3 评论 -
appium定位APP元素方式(包含H5原生页面)
一、环境搭建1、下载安装appium。前往appium官网下载appium安装包,并进行安装2、安装Android SDK。可直接在https://android-sdk.en.softonic.com中下载。也可先安装 Android Studio ,然后在Android Studio 中进行安装3、配置环境变量:新增变量名:ANDROID_HOME,对应值为Android SDK路径。如:D:\android_sdk\new_sdk。然后找到Path,并在里面添加:%ANDROID_HOME%\t原创 2021-05-08 20:41:57 · 1880 阅读 · 5 评论 -
xpath元素定位常用的5种方法(相对路径)
一、xpath定位定位说明//ul/*ul的所有子元素//input[2]第2个input元素//input[last()最后一个input元素input[position()< 3]前2个input元素//input[@value]有value属性的input元素//input[@name=‘password’ and @pwd=‘123456’]属性name的值等于password并且属性pwd的值等于123456的input元素原创 2021-05-08 17:22:30 · 37473 阅读 · 1 评论 -
UI自动化常用的定位方式(包含xpath和css对比)
(1) id说明:基于元素的id属性定位前提:元素必须有id属性方法:driver.find_element_by_id()特性:一般情况下,在一个页面中,id属性值是唯一(2)name说明:基于元素的name属性定位前提:元素必须有name属性方法:driver.find_element_by_name()特性:一般情况下,在一个页面中,name属性值是可以重复的(3) class说明:基于元素的class属性定位前提:元素必须有class属性方法:driver.fin原创 2021-05-08 16:34:30 · 1418 阅读 · 0 评论 -
Appium启动时的一些坑点
坑点一:启动appium会话报错 An unknown server-side error occurred while processing the command. Original error: The instrumentation process cannot be initialized. Make sure the application under test does not crash and investigate the logcat output.使用豆瓣APP和夜神模拟器进行.原创 2021-05-07 21:24:58 · 743 阅读 · 1 评论 -
【已解决】adb connect x.x.x.x:5555报错由于 目标计算机积极拒绝,无法连接
原因:安卓系统未打开adb网络调试功能通过USB方式连接到安卓系统设置即可解决方案:通过USB线连接安卓机和电脑确保安卓系统中的开发者选项打开,USB调试项也是是开启的通过cmd打开命令行窗口界面,输入adb devices 能看到所连接的设备情况下adb root 权限提权adb shell 进入到安卓系统的shell① setprop service.adb.tcp.port 5555 设置adb服务端口为5555, 打开adb网络调试功能附加说明: setprop ser.原创 2021-05-07 19:25:01 · 24067 阅读 · 0 评论 -
【已解决】webdriver调用火狐浏览器报错NotADirectoryError: [WinError 267] 目录名称无效
在做web UI 自动化时,chrome浏览器可以成功打开,但使用同样的方式,打开火狐浏览器却报错,报错信息如下:Exception in thread Thread-1:Traceback (most recent call last): File "E:\Python\Python38-32\lib\threading.py", line 932, in _bootstrap_inner self.run() File "E:\Python\Python38-32\lib\threa原创 2021-01-28 10:52:20 · 957 阅读 · 1 评论 -
web UI自动化之PO模式
PO是什么:PO模式,Page Object的缩写,页面对象,设计框架的思想,分层思想在PO下,应用程序的每一个页面都有一个对应的page class每一个page class维护着该web页的元素集和操作这些元素的方法page class中的方法命名最好根据对应的业务场景进行,例如通常登录后我们需要等待几秒钟PO的优势:PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰页面对象与用例分离,使得我们更好的复用对象可复用的页面方法代码会变得更加优化更加有效的命名原创 2021-01-19 18:44:14 · 4268 阅读 · 2 评论 -
【已解决】MacOS无法打开“chromedriver”,因为无法验证开发者
最近在学习web UI自动化,需要使用谷歌浏览器的驱动,下载后加入环境变量运行chromedriver报错:无法打开“chromedriver”,因为无法验证开发者解决方案:打开终端导航至chromedriver文件所在的路径执行以下任一命令cd /Library/Frameworks/Python.framework/Versions/3.6/binxattr -d com.apple.quarantine chromedriver或spctl --add --label'Appro原创 2020-12-21 21:08:45 · 15456 阅读 · 3 评论