1. 应用操作

本章所罗列的方法主要针对应用的操作,如应用的安装、卸载、关闭、启动等。

把前面的启动代码放在这里,后面只展示不同的部分。

# coding:utf-8
from appium import webdriver
from time import sleep # 初始化
desired_caps = {}
# 使用哪种移动平台
desired_caps['platformName'] = 'Android'
# Android版本
desired_caps['platformVersion'] = '5.1.1'
#使用adb devices -l 查询,当有多台设备时,需要声明
desired_caps['deviceName'] = '127.0.0.1:62001'
#包名
desired_caps['appPackage'] = 'com.android.settings'
#界面名
desired_caps['appActivity'] = '.Settings' # 启动服务
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

1.1 获取应用的包名和界面名

当我们从一个应用跳转到另外一个应用的时候,想输出其包名、界面名或者想在报告中展现对应信息, 我们就可以调用这个属性来进行获取。

# 打印当前包名
print(driver.current_package)
# 打印当前界面名
print(driver.current_activity)

1.2 安装和卸载以及检查应用是否安装

安装应用:

driver.Install_app(app_path):安装应用到设备,需要apk包的路径。

卸载应用:

driver.remove_app(app_id):从设备中删除一个应用。

检查应用是否安装:

driver.is_app_installed(app_id):检查应用是否已经安装。需要传入应用包的名字。返回结果为True或False。

案例:

我们现在就来安装一个应用宝吧,首先用电脑下载一个应用包的apk,放在F盘下。

然后我们将apk拖进模拟器中安装,进入应用包,查看应用包的名字。

这些完成就可以开始我们的实例演示了。

if driver.is_app_installed("com.tencent.android.qqdownloader"):
driver.remove_app("com.tencent.android.qqdownloader")
else:
driver.install_app("E:\yingyongbao_7422130.apk") #退出driver1
driver.quit()

如果应用宝已经安装,就会卸载应用宝。如果应用宝没有安装,就会安装应用宝。

大家只要运行成功,就可以看到效果了。

1.3 在脚本内启动其他应用

我们经常遇到需要从一个应用跳转到另外一个应用 ,就像我们使用饿了吗的时候,需要跳转到支付宝来进行支付一样。

我们想要实现这种功能,就要使用下面的方法了。

driver.start_activity(appPackage, appActivity):分别传入要打开的应用的包名和界面名。

实例:

打开《设置》,等待三秒后跳转到《通讯录》。

sleep(3)

#跳转到短信
driver.start_activity('com.android.contacts', '.activities.PeopleActivity') sleep(5) #退出driver1
driver.quit()

1.4 关闭应用

有的时候我们需要关闭某个应用程序后,再打开新的应用。那么如何关闭应用程序呢?

我们到目前为止,已经学过一种关闭应用的方法了,那就是driver.quit()。但是这种关闭呢,是关闭驱动对象,同时关闭所有关联的应用,关闭后我们是无法使用脚本操作应用的。

如果我们只想关闭当前操作的应用,不关闭驱动对象,我们就可以使用driver.close_app()方法。

1.5 重置应用

driver.reset()

重置应用。相当于“恢复出厂默认值”的效果。这个方法不需要传入参数。

1.6 将应用置于后台

置于后台相信玩过手机的都知道,就是将程序不显示在手机界面上,但是却可以正常运行,最好的例子就是我们常用的QQ了。

方法:

driver.background_app(seconds):app放置到后台一定时间后再回到前台,模拟热启动。这个方法需要传入一个时间,表示在后台停留多少秒。

热启动:表示进入后台回到前台。关机再开这种切断电源的行为可以叫做 ”冷启动。

实例:

打开《设置》,进入后台五秒,再回到前台。

time.sleep(3)
driver.background_app(5)
time.sleep(3)
# 退出driver
driver.quit()

Appium(七):Appium API(一) 应用操作的更多相关文章

  1. Python Appium 滑动、点击等操作

    Python Appium 滑动.点击等操作 1.手机滑动-swipe # FileName : Tmall_App.py # Author : Adil # DateTime : 2018/3/25 ...

  2. 【Appium】Appium工作原理

    参考:http://www.cnblogs.com/zhjsll/p/5698878.html 原作者写的很好,所以直接放在这里. 一.什么是Appium Appium是一个开源.跨平台的测试框架,可 ...

  3. Appium与Appium Desktop的区别

    Appium-Server的配置,在之前的博文已有介绍,基于Python的Appium环境搭建合集,所以在此处就不详细介绍了.今天主要来分享下Appium-Server和Appium desktop在 ...

  4. Web API与文件操作

    前段时间,一直有练习ASP.NET MVC与Web API交互,接下来,Insus.NET再做一些相关的练习,Web API与文件操作,如POST文件至Web API,更新或是删除等. 不管怎样,先在 ...

  5. Asp.Net Web API 2(CRUD操作)第二课

    Asp.Net Web API 2(CRUD操作)第二课 Asp.Net Web API 导航   Asp.Net Web API第一课:入门http://www.cnblogs.com/aehyok ...

  6. appium --log-timestamp > appium.log

     appium --log-timestamp > appium.log 

  7. 封装CoreGraphics的API简化绘图操作

    封装CoreGraphics的API简化绘图操作 效果 说明 1. 将CoreGraphics的API接口抽象为对象,让绘图变得简单易懂 2. 简化常用的绘制操作 3. 源码长期更新 源码 https ...

  8. 【PHP】Thinkphp 七牛云API对接

    访问一个网站,图片的流量占的比例是非常高的!在你的服务器硬盘上,图片占的容量也是非常高的. 如果要搞一个图片非常多,用户量又很庞大的网站,那么,得花多少钱烧在服务器上? 这种时候,当然要用第三方图片存 ...

  9. appium(5)-Appium capabilities

    Appium Capabilities Appium server capabilities Capability Description Values automationName Which au ...

  10. 动手实操(一):如何用七牛云 API 实现相片地图?

    实操玩家: 在苹果手机上,我们只要打开定位服务,拍照后便能在相簿中找到地图,地图上显示着在各地拍摄的相片.网站上这种显示方式也并不少见,例如 Flickr.即将关闭的 Panoramio 等. 作为地 ...

随机推荐

  1. Git实战指南----跟着haibiscuit学Git(第一篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  2. 【RN - 基础】之React Native组件的生命周期

    下图描述了React Native中组件的生命周期: 从上图中可以看到,React Native组件的生命周期可以分为初始化阶段.存在阶段和销毁阶段. 实例化阶段 实例化阶段是React Native ...

  3. [ch04-03] 用神经网络解决线性回归问题

    系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 4.3 神经网络法 在梯度下降法中,我们简单讲述了一下神 ...

  4. mac安装pip

    1.下载get-pip.py curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py SaintKings-Mac-mini ...

  5. react之高阶组件(一)

    当两个或多个组件有相同的地方,可以将相同的部分抽离出来 先创建三个组件A.B.C A.js import React, { Component } from 'react' class A exten ...

  6. 【华为云网络技术分享】HTTP重定向HTTPS配置指南

    [摘要] 本文介绍使用华为云弹性负载均衡配置Http重定向到Https的方法. 1. HTTP.HTTPS 头部标识 ELB 对 HTTPS 进行代理,无论是 HTTP 还是 HTTPS 请求,到了  ...

  7. 自然语言处理(NLP) - 数学基础(1) - 总述

    正如我在<2019年总结>里说提到的, 我将开始一系列自然语言处理(NLP)的笔记. 很多人都说, AI并不难啊, 调现有库和云的API就可以啦. 然而实际上并不是这样的. 首先, AI这 ...

  8. 剑指offer-31:整数中1出现的次数(从1到n整数中1出现的次数)

    参考: https://troywu0.gitbooks.io/interview/整数中出现1的次数(从1到n整数中1出现的次数).html 题目描述 求出1~13的整数中1出现的次数,并算出100 ...

  9. windows下RocketMQ下载安装教程

    一.下载(原文链接:http://www.studyshare.cn/software/details/1183/0 ) 1.官网下载:下载地址   2.百度网盘下载:下载地址 提取码:0g5a ja ...

  10. Nginx安装echo模块echo-nginx-module

    https://github.com/openresty/echo-nginx-module 这个模块不包含在 Nginx 源码中,安装方法: 1. 首先下载模块源码:https://github.c ...