一. 前言

  有小伙伴有办公自动化的需求,特此出一篇C端自动化教程,并附带demo案例。C端的自动化比B端多一个appium,其他的操作大同小异。

二. 环境

  1. appium:exe工具,用于启动服务,官网下载。
  2. Appium-Python-Client :python驱动appnium的库,使用pip安装。
  3. selenium:ui自动化库,appium的核心层,使用pip安装。
  4. inspect:exe工具,用于定位元素,官网下载。
  5. winappdriver:是pc端应用做ui自动化的桥梁,官网下载。
  6. 开发者模式:在设置-开发者模式里,选择开启。

三. 案例

  以操作谷歌浏览器的搜索框为例,采用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的更多相关文章

  1. 移动端自动化测试之Appium实战

    软件工程的趋势:目前大部分企业的软件研发模式是持续交付,而自动化是持续交付的根基,而且不仅仅是测试要自动化,所有的环节都在自动化,自动化是未来的方向这一点已成为行业共识. 之前咱们已经讲过了AppCr ...

  2. 聊聊 PC 端自动化最佳方案 - WinAppDriver

    1. 前言 大家好,我是安果! 一提到自动化,可能大家想到的是 App 端的 Appium.Airtest.AutoJS,亦或是 Selenium.Puppeteer.Cypress 等 Web 端的 ...

  3. 移动端自动化测试之Appium的工作原理学习

    Appium 简介 参考官网文档说明:http://appium.io/docs/en/about-appium/intro/ Appium官方文档上介绍,Appium 是一个自动化测试的开源工具,支 ...

  4. 聊聊 PC 端自动化最佳方案 - Pywinauto

    1. 前言 大家好,我是安果! 上一篇文章,聊到 PC 端的一种自动化方案:WinAppDriver 聊聊 PC 端自动化最佳方案 - WinAppDriver 有小伙伴后台给我留言,说「 pywin ...

  5. App 端自动化的最佳方案,完全解放双手!

    1. 前言 大家好,我是安果! 之前写过一篇文章,文中提出了一种方案,可以实现每天自动给微信群群发新闻早报 如何利用 Python 爬虫实现给微信群发新闻早报?(详细) 但是对于很多人来说,首先编写一 ...

  6. 移动端自动化自动化(Android&iOS)——Appium

    Appium-Python 移动端自动化环境搭建 Appium介绍 Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持iOS.Android及Firefox ...

  7. 【待考察】Appium使用技巧,助你快速入门移动端自动化!

    Appium使用技巧,助你快速入门移动端自动化! 原创: 柠檬班superman 柠檬班软件测试 1月4日 关注并置顶[柠檬班]的小哥哥小姐姐 “猪”年行大运 说说最近研究移动端的自动化 移动端的自动 ...

  8. Appium和Python实现蚂蚁森林自动化收取能量

    准备环境 Window10系统 Appium1.21.0 AndroidSDK r24.1.1 Python3.7.5 支付宝apk文件 查看支付宝apk包信息 使用android sdk aapt命 ...

  9. 移动端自动化==>什么是Appium

    转自:http://www.imdsx.cn/ 手机App分为两大类,原生App(Native App)和混合APP(Hybrid App) 原生App(Native App) 原生App实际就是我们 ...

  10. Appium使用Python运行appium测试的实例

    Appium使用Python运行appium测试的实例 一.  Appium之介绍 https://testerhome.com/topics/8038 详情参考--https://testerhom ...

随机推荐

  1. Jmeter中通过V函数使Foreach控制器有多个输入变量

    需求:Foreach 控制器只能有一个输入变量.但是实际情况会出现需要使用多个变量. 如:上一个接口获取到多个字段且每个字段用Json提取器获取的时候都是一个集合,期望将获取到的字段传给下一个接口. ...

  2. python循环结构之while循环

    在python中,除了for循环,还有一个while循环 for循环:循环次数是明确了的 while循环:循环次数不确定,循环停止条件由用户自定义 # while语句结构 while 判断条件: 执行 ...

  3. ArcObjects SDK开发 021 开发框架搭建-FrameWork包设计

    1.框架引擎部分 引擎模块其实就是之前我们说的App-Command-Tool模块,通过这个模块,把系统的主干框架搭建起来. 其中大部分出现在菜单以及工具条上的按钮都会继承这个框架定义ICommand ...

  4. VS2022,VS2019最新安裝方法

    直接参照:  https://www.bilibili.com/read/cv12364240/ 2022年5月30浩,亲测可用 1.下载notepad++ (必须) 2. 去微软官网下载 对应的安装 ...

  5. 温故知新 - 靶机练习-Toppo

    今天闲来无事,重新做了一下以前做过的第一个靶机(https://www.cnblogs.com/sallyzhang/p/12792042.html),这个靶机主要是练习sudo提权,当时不会也没理解 ...

  6. Jq /Js 拖动选择文件

    必须先引入 Jquery 依赖 1.文件结构 2. HTML <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  7. java下载网络文件的N种方式

    java下载网络文件的N种方式 通过java api下载网络文件的方法有很多,主要方式有以下几种: 1.使用 common-io库下载文件,需要引入commons-io-2.6.jar public ...

  8. tornado原理介绍及异步非阻塞实现方式

    tornado原理介绍及异步非阻塞实现方式 以下内容根据自己实操和理解进行的整理,欢迎交流~ 在tornado的开发中,我们一般会见到以下四个组成部分. ioloop: 同一个ioloop实例运行在一 ...

  9. 路由分发、名称空间、虚拟环境、视图层三板斧、JsonResponse对象、request对象获取文件、视图层FBV与CBV的源码剖析、模版层简介

    今日内容详细 路由分发 ​ django的每一个应用都可以有自己独立的路由层(urls.py)静态文件(static文件夹)模板层(templates文件夹) ​ 基于这个特性多人开发项目就可以完全解 ...

  10. Ubuntu 配置 Oh-my-zsh

    注意 oh-my-zsh 这玩意安装简单.卸载难.维护极其繁琐,动不动就报错.体验一下还可以,我个人建议能不装就不装. 下载 zsh sudo apt install zsh 下载 oh-my-zsh ...