C端自动化实现:appium+winappdriver+python
一. 前言
有小伙伴有办公自动化的需求,特此出一篇C端自动化教程,并附带demo案例。C端的自动化比B端多一个appium,其他的操作大同小异。
二. 环境
- appium:exe工具,用于启动服务,官网下载。
- Appium-Python-Client :python驱动appnium的库,使用pip安装。
- selenium:ui自动化库,appium的核心层,使用pip安装。
- inspect:exe工具,用于定位元素,官网下载。
- winappdriver:是pc端应用做ui自动化的桥梁,官网下载。
- 开发者模式:在设置-开发者模式里,选择开启。
三. 案例
以操作谷歌浏览器的搜索框为例,采用C端的方式做UI自动化,代码如下:
- import subprocess
- import time
- from appium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.common.keys import Keys
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as ec
- def search():
- """
- 需求:使用google浏览器搜索 “测神-博客园”
- """
- # 启动winappdriver
- subprocess.Popen(r'start "" /d ""D:\s\Windows Application Driver\" "WinAppDriver.exe"',
- shell=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- # 配置c端应用程序
- desired_caps = {"app": r"C:\Program Files\Google\Chrome\Application\chrome.exe"}
- # 启动应用程序
- driver = webdriver.Remote(
- command_executor="http://127.0.0.1:4723",
- desired_capabilities=desired_caps
- )
- # 获取应用程序界面的元素(元素定位通过inspect工具实现)
- search_box = WebDriverWait(driver, 20).until(ec.presence_of_element_located((By.NAME, "地址和搜索栏")))
- # 操作元素
- search_box.click()
- search_box.send_keys('博客园-测神')
- search_box.send_keys(Keys.ENTER)
- # 退出浏览器
- time.sleep(5)
- driver.quit()
- if __name__ == '__main__':
- search()
四. 后记
截止目前(2022/6/21),发现Appium并没有远程启动入口,这意味着未来其官方会缺少对pc端自动化的支持。
不过这未尝不是一件好事,复杂的配置已经劝退不少人了,连app自动化用这个做都觉得很烂。
如果不想用旧版本的,那么用什么做pc端自动化呢?
——pywinauto库。
后续我会出一篇教程的,这个做pc端自动化要方便多了,而且少了这些复杂的配置,省事儿不少。
作者留言
原创不易,如果觉得本文对你有帮助,记得打赏噢O(∩_∩)O,您的支持是我创作路上最大的动力~

C端自动化实现:appium+winappdriver+python的更多相关文章
- 移动端自动化测试之Appium实战
软件工程的趋势:目前大部分企业的软件研发模式是持续交付,而自动化是持续交付的根基,而且不仅仅是测试要自动化,所有的环节都在自动化,自动化是未来的方向这一点已成为行业共识. 之前咱们已经讲过了AppCr ...
- 聊聊 PC 端自动化最佳方案 - WinAppDriver
1. 前言 大家好,我是安果! 一提到自动化,可能大家想到的是 App 端的 Appium.Airtest.AutoJS,亦或是 Selenium.Puppeteer.Cypress 等 Web 端的 ...
- 移动端自动化测试之Appium的工作原理学习
Appium 简介 参考官网文档说明:http://appium.io/docs/en/about-appium/intro/ Appium官方文档上介绍,Appium 是一个自动化测试的开源工具,支 ...
- 聊聊 PC 端自动化最佳方案 - Pywinauto
1. 前言 大家好,我是安果! 上一篇文章,聊到 PC 端的一种自动化方案:WinAppDriver 聊聊 PC 端自动化最佳方案 - WinAppDriver 有小伙伴后台给我留言,说「 pywin ...
- App 端自动化的最佳方案,完全解放双手!
1. 前言 大家好,我是安果! 之前写过一篇文章,文中提出了一种方案,可以实现每天自动给微信群群发新闻早报 如何利用 Python 爬虫实现给微信群发新闻早报?(详细) 但是对于很多人来说,首先编写一 ...
- 移动端自动化自动化(Android&iOS)——Appium
Appium-Python 移动端自动化环境搭建 Appium介绍 Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持iOS.Android及Firefox ...
- 【待考察】Appium使用技巧,助你快速入门移动端自动化!
Appium使用技巧,助你快速入门移动端自动化! 原创: 柠檬班superman 柠檬班软件测试 1月4日 关注并置顶[柠檬班]的小哥哥小姐姐 “猪”年行大运 说说最近研究移动端的自动化 移动端的自动 ...
- Appium和Python实现蚂蚁森林自动化收取能量
准备环境 Window10系统 Appium1.21.0 AndroidSDK r24.1.1 Python3.7.5 支付宝apk文件 查看支付宝apk包信息 使用android sdk aapt命 ...
- 移动端自动化==>什么是Appium
转自:http://www.imdsx.cn/ 手机App分为两大类,原生App(Native App)和混合APP(Hybrid App) 原生App(Native App) 原生App实际就是我们 ...
- Appium使用Python运行appium测试的实例
Appium使用Python运行appium测试的实例 一. Appium之介绍 https://testerhome.com/topics/8038 详情参考--https://testerhom ...
随机推荐
- python3小技巧总结(实时更新)
1.列表解析 如果一个想将一个列表中的大于0的数字过滤,一般可能会用到lambd结合filter,或者就是直接遍历,不过最好的解决办法是这样: b = [1,0,-1,-2] a = [i for i ...
- Python爬虫爬取彼岸网4K Picture
深夜爬取4k图片 下载流程 定义page_text函数,对第一页地址发送get请求,因为页面数据在页面源代码都能查到,所以发送get 请求就ok!,注意:要进行编码格式设置,可以去源代码查看, 定义p ...
- 【数据库】Oracle建表、创建序列、添加触发器生成自增主键
CREATE TABLE "TEST"."T_ORDER" ( "AUUID_0" VARCHAR2 ( 255 ) NOT NULL ...
- Kafka相关面试题及答案
Kafka相关面试题及答案 1. Kafka中的ISR.AR又代表什么? ISR:与leader保持同步的follower集合 AR:分区的所有副本 2. Kafka中的HW.LEO等分别代表什么? ...
- [C++]我的理解之内存对齐
问题1:为什么要内存对齐? 平台原因:不是所有的平台都能访问到任意地址上的任何数据,如果在特定的地址上找不到数据的话就会抛出硬件异常. 性能问题:简单的来说如果没有使用内存对齐的话,相对于内存对齐,C ...
- 《深度探索C++对象模型》第六章 执行期语意学
new运算符和delete运算符 运算符new看似是一个简单的运算,比如: int *pi=new int(5); 但是它实际由两个步骤完成: 1.通过适当的new运算符函数实体,配置所需的内存: / ...
- [cocos2d-x]我发现的内存管理机制的一些问题
之前看过的一些文章中关于内存的管理机制讲的非常好,但是我发现它们在谈到每一帧都会创建一个新的内存池的时候,我发现源码并不是这样: PoolManager* PoolManager::getInstan ...
- css之transform属性的使用
1.定义:Transform属性应用于元素的2D或3D转换.这个属性允许你将元素旋转,缩放,移动,倾斜等. 2.常用的属性值: (1)translate(移动): 这个属性值里面含有三个参数,依次 ...
- MySQL中多种排名实现
一.数据库表结构以及数据 CREATE TABLE `forlan_score` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', ...
- Java微服务随机掉线排查思路
背景 我们的业务共使用11台(阿里云)服务器,使用SpringcloudAlibaba构建微服务集群,共计60个微服务,全部注册在同一个Nacos集群 流量转发路径: nginx->spring ...