Appium + python 实战

article/2025/9/3 21:56:21

文章目录

  • Appium介绍
  • Appium 原理
  • Appium使用
  • Appium + Python实战

Appium介绍

是一个移动端的自动化测试框架,是跨平台的,支持ios和Android平台上的移动原生应用、混合以及web移动应用,可以针对不同的平台使用一套API来编写测试脚本,可用于iOS和Android。可以跨语言:Java、python、Ruby。

移动原生应用;是指那些用iOS或者AndroidSDK写的应用移动Web应用:是指使用移动浏览器访问的应用(Appium支持iOS上的Safari和Android上的Chrome)混合应用:是指原生代码封装网页视图(原生代码和Web内容交互)

Appium 官网:添加链接描述

Appium 原理

Appium 的启动实际上是在本机使用了4723端口开启了一个服务

写的代码会访问本机的Appium服务器,并获取driver对象

appium 会将driver对象调用的方法转化为post请求,提交给appium服务器

appium通过接收到的post请求发送给手机,再由手机进行执行。
在这里插入图片描述

Appium使用

Appium 桌面版本Desktop
有三个基础配置:

  • Simple
  • Advanced
  • Presets(域相关配置)
    在这里插入图片描述
    备注:Host:可以写localhost、127.0.0.1、0.0.0.0都是可以的。
    在这里插入图片描述
    在这里插入图片描述
    点击下载按钮之后会保存原始日志
    在这里插入图片描述
    点击放大器按钮

App元素探测工具 Appium Inspector

  • Appium Inspector

    • 配置参数
  • UI AutomatorViewer

    • SDK提供的原生元素定位工具
    • 不需要提供启动参数
    • 效率高
      在这里插入图片描述
  • Automatic:自动获取Server的一些信息

  • Custom Server :自定义Server的信息

  • Select Cloud Providers :选择云端的一些服务

  • Ds:启动App所需要的一些配置
    在这里插入图片描述
    安装 Appium- python 库安装

pip3 install Appium-python-Client

在这里插入图片描述

Appium + Python实战

  1. 打开某个应用,启动参数
from appium import webdriver
import time
desired_caps = dict()
desired_caps['platformName'] = 'Android' # 可以写成android
desired_caps['platformVersion'] = '7'  # 11.1.0等都可以写成11
desired_caps['deviceName'] = 'meitu' # 设备名字可以随便写,但是不可以为空
desired_caps['appPackage'] = 'com.qiniu.pili.droid.shortvideo.effect.demo'
desired_caps['appActivity'] ='com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity' driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
time.sleep(20)# 等待20秒"driver.quit()
  1. 在脚本内启动其他APP——应用跳转
from appium import webdriver
import time
desired_caps = dict()
desired_caps['platformName'] = 'Android' # 可以写成android
desired_caps['platformVersion'] = '7'  # 11.1.0等都可以写成11
desired_caps['deviceName'] = 'meitu' # 设备名字可以随便写,但是不可以为空
desired_caps['appPackage'] = 'com.qiniu.pili.droid.shortvideo.effect.demo'
desired_caps['appActivity'] ='com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity' driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
time.sleep(20)# 等待20秒"
# 跳转
driver.start_activity("com.pili.pldroid.playerdemo",".MainActivity")
driver.quit()

输出包名和界面名

println(driver.current_package)
println(driver.current_activity)
  1. 关闭应用程序和驱动对象
    有的时候需要关闭某个应用程序后,再打开新的应用。
driver.close_app()#关闭当前操作的app,不会关闭驱动对象,只是把应用关闭,不会关闭驱动对象driver,当打印包名时,会有下面的结果
com.android.launcher3:表示系统手机界面
driver.quit()#关闭驱动对象,同时关闭所有关联的app。driver关闭
  1. 安装、卸载以及是否安装app
if driver.is_app_installed("com.qiniu.pili.droid.shortvideo.effect.demo"):driver.remove_app("com.qiniu.pili.droid.shortvideo.effect.demo")
else:driver.install_app("")#apk所在路径driver.quit()
  1. 将应用置于后台
    模拟按home键,将应用放置到后台,进入后台,5秒后再回到前台()
driver.background_app(5)# 秒
from appium import webdriver
import time
desired_caps = dict()
desired_caps['platformName'] = 'Android' # 可以写成android
desired_caps['platformVersion'] = '7'  # 11.1.0等都可以写成11
desired_caps['deviceName'] = 'meitu' # 设备名字可以随便写,但是不可以为空
desired_caps['appPackage'] = 'com.qiniu.pili.droid.shortvideo.effect.demo'
desired_caps['appActivity'] ='com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity' driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)driver.background_app(5)
driver.quit()

补充:
热启动:没有切断电源的情况下,表示应用进入后台又回到前台
冷启动:切换电源的行为,关机,开机。


http://chatgpt.dhexx.cn/article/vMHU1Pna.shtml

相关文章

30个有趣的Python实战项目(附源码)

大家好,今天给大家重磅推荐我的好朋友J哥的公众号——「菜J学Python」,J哥经常在公众号分享有趣的Python实战项目,而且基本都附代码和数据。废话不多说,大家先点击以下卡片关注一波: 点击关注菜J学Python J哥是985金融…

35个Python实战项目,完整源代码!

收集整理最新36个python实战项目源代码,系统实用,不是普通的小脚本! 多看多练是提升代码能力的最佳途径,一起操练起来! 视频转字符动画 12306 B站弹幕 B站滑块验证码破解 GUI签名 python爬取并简单分析51job py…

全网首发!精选32个最新Python实战项目(附源码),拿走就用!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。接下来,我将给大家介绍32个非常实用的Python项目,帮助大家更好的学习Python。大家也…

整理了60个 Python 实战例子,拿来即用!

人生苦短,我用 Python! 大家好,最近有一些朋友问我有没有一些 Python 实战小案例。今天我整理排版了一遍,给大家分享一下。喜欢记得点赞、收藏、关注。 整理了60个Python小例子,拿来即用! 整理了60个 Py…

OpenCV-Python实战(1)——OpenCV简介与图像处理基础

OpenCV-Python实战(1)——OpenCV简介与图像处理基础 OpenCV介绍Python安装OpenCVOpenCV主要模块OpenCV应用场景 OpenCV图像处理基础图像基础图像处理中的主要问题图像处理流程 像素、颜色、通道、图像和颜色空间图像描述图像文件类型 OpenCV中的坐标系Op…

精选了20个Python实战项目(附源码),拿走就用!零基础练手不二项目!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。 那么要想学会并掌握Python,可以实战的练习项目是必不可少的。 接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python。 …

精选了20个Python实战项目(附源码),拿走就用!

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 昔闻洞庭水,今上岳阳楼。 大家好,我是小F。 Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被…

100个精选Python实战项目案例,送给缺乏练手经验的你

随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中。为什么这么多人学 Python ?我要喊出那句话了:“人生苦短,我用 Python!”,正是因为语法简单、容易学习,所以 Python 深受大家喜…

python:实战篇

python 实战 python 实战篇 1、python解压1. python解压zip、7z2. python 解压rar1)windows:2)linux: 2、python执行Linux系统命令的3种方法3、python代码打包成exe安装包安装打包加密【附】 4、windows下:py文件引用其他py文件5、…

【No.2】CAS单点登录的原理分析

上一篇说了基于Cookie的单点登录的实现:http://blog.csdn.net/readiay/article/details/52814001,虽然他实现简单,但是也问题颇多。例如:用户名密码不停传送,增加了被盗号的可能。另外,不能跨域&#xff01…

CAS单点登入登出原理

CAS 集中式认证服务(Central Authentication Service,CAS),单点登录协议,允许一个用户访问多个应用程序,而只需要提供一次凭证。 具体实现框架有:OAuth2,Shiro等。 普通CAS1.0 登入详细流程 流程解析&a…

SSO单点登录原理剖析

转载于:http://www.cnblogs.com/gxbk629/p/4473569.html CAS实现SSO单点登录原理 1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨…

cas跨域单点登录原理

相同域名下实现单点登录太简单,因为A系统和B系统域名相同,在访问A时候登录过,在访问B时,由于域名相同,浏览器会带上cookies,cookies里有票据信息,访问B自然就不用再登录了。 可是如果A系统和B系…

CAS单点登录原理分析(二)

这篇文章对CAS单点登录具体实现的一些步骤就行讲述,至于CAS单点登录的实现原理分析,请参看下面这篇文章: CAS单点登录原理分析(一) https://blog.csdn.net/qq_41258204/article/details/84036875 CAS 包含两个部分: CAS Server …

CAS-5.2.6单点登录-退出原理

退出原理流程图: cas的退出有三种模式: NONE:不支持单点登录BACK_CHANNEL:隐式退出(默认)FRONT_CHANNEL:显式退出 参数说明 参考官网地址 https://apereo.github.io/cas/5.2.x/installation…

CAS实现单点登录原理与实例解析

上几篇博客介绍了使用cookie实现同域和跨域系统的单点登录,本文将介绍通过CAS实现单点登录实例。 CAS是由耶鲁大学研发的单点登录服务器,主要分为服务端和客户端两个系统模块;本文将通过官网提供的实例进行介绍。 一、CAS实现SSO的原理与认…

简述CAS单点登录的实现原理

CAS(Central Authentication Service)单点登录系统是一种常见的身份验证和授权解决方案,它可以让用户在一个认证中心(CAS服务器)上登录,然后使用此登录信息访问多个应用程序而无需再次登录。 先了解几个名…

CAS单点登录原理解析及相关配置

1、基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用…

CAS 单点登录的实现原理(一)

一,会话和Cookie HTTP是无状态协议,客户端与服务端之间的每次通信都是独立的,而会话机制可以让服务端鉴别每次通讯过程中的客户端是否是同一个,从而保证业务的关联性。 Session是服务器使用一种类似于散列表的结构,用…

CAS单点登录原理及实现

CAS单点登录原理及实现 标签(空格分隔): 单点登录 CAS SSO ###目录 概念介绍搭建流程原理分析 ###概念介绍 CAS介绍 Central Authentication Service(缩写CAS)是一种针对万维网的单点登录协议。它的目的是允许一个用…