App自动化测试笔记(七):手机操作API

手机操作API

1、获取手机分辨率
driver.get_window_size()

返回值:
字典类型
有两个key,分别是width和height
宽和高的值是int类型

2、手机截图

参数:
filename:指定路径下,指定格式的图片

driver.get_screenshot_as_file(filename)

代码:

from appium import webdriver
import timedesired_caps = dict()
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 获取手机的分辨率
print(driver.get_window_size())
# 获取手机的分辨率属性
print(driver.get_window_size()['width'])
# 获取手机的分辨率属性类型
print(type(driver.get_window_size()['width']))# 手机截图
driver.get_screenshot_as_file("C:/Users/j3027/Desktop/112.png")
3、获取和设置手机网络

获取手机网络

driver.network_connection

设置手机网络
参数:
connectionType:网络类型

driver.set_network_connection(connectionType)

注意点:
网络的类型,建议使用系统提供的类型
from appium.webdriver.connectiontype import connectionType

代码:

from appium import webdriver
from appium.webdriver.connectiontype import ConnectionType
desired_caps = dict()
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 获取当前手机网络类型
print(driver.network_connection)
# 设置手机网络
driver.set_network_connection(1)
#判断手机网络类型
if driver.network_connection == ConnectionType.DATA_ONLY:print(driver.network_connection)
else:driver.set_network_connection(ConnectionType.DATA_ONLY)print(4)
4、发送键到设备

参数:
keycode:发送给设备的关键代码
metastate:关于被发送的关键代码的元信息,一般为默认值

driver.press_keycode(keycode,metastate = None)

手机操作键编号:
举例:

from appium import webdriver
import timedesired_caps = dict()
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 设置手机音量键并退出设置界面
driver.press_keycode(24,metastate = None)
time.sleep(2)
driver.press_keycode(24,metastate = None)
time.sleep(2)
driver.press_keycode(25,metastate = None)
time.sleep(2)
driver.press_keycode(25,metastate = None)
time.sleep(2)
driver.press_keycode(4,metastate = None)
driver.press_keycode(4,metastate = None)
5、操作手机通知栏

打开手机通知栏:

driver.open_notification()

关闭通知栏
现实中通过手指向上滑动或者点击返回键关闭示例:打开手机通知栏并关闭
 代码:

from appium import webdriver
import time
from appium.webdriver.common.touch_action import TouchActiondesired_caps = dict()
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 打开手机通知栏后并关闭
# 打开通知栏
driver.open_notifications()
# 打开后停顿3秒
time.sleep(3)
# 关闭通知栏
driver.press_keycode(4,metastate = None)
time.sleep(3)
driver.quit()

 

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/518110.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Power Apps-上传附件控件

1.插入一个“编辑”窗体 2.然后连接一个数据源,就会在下面自动产生一个添加附件的组件 3.把这个控件复制粘贴到页面里,就可以单独使用来上传了 4.控件有报错,需要修改控件的属性 BorderColor改为:Color.Black Item 、Tooltip的…

【大数据】-- 创建 Paimon 外部表

如今,在数据湖三剑客(delta lake、hudi、iceberg)之上,又新出一派: apache paimon。我们恰好在工作中遇到,以下介绍在 dataworks 上,使用 maxcompute odps sql 创建 apache paimon 外部表的一些…

解决vue项目本地开发完成后部署到服务器后报404的问题

一、如何部署 前后端分离开发模式下,前后端是独立布署的,前端只需要将最后的构建物上传至目标服务器的web容器指定的静态目录下即可 我们知道vue项目在构建后,是生成一系列的静态文件 常规布署我们只需要将这个目录上传至目标服务器即可 /…

Rust错误处理和Result枚举类异常错误传递

Rust 有一套独特的处理异常情况的机制,它并不像其它语言中的 try 机制那样简单。 首先,程序中一般会出现两种错误:可恢复错误和不可恢复错误。 可恢复错误的典型案例是文件访问错误,如果访问一个文件失败,有可能是因…

前端请求的错误处理

全局考虑: 错误需要从三个方面考虑,范围一次减小: 网络层 > 协议层 > 应用层

鲁大师2月新机性能/流畅/AI/久用榜:魅族推出“传统智能手机”谢幕之作

结束了令人怀念的农历新年,无论是否还意犹未尽,整个行业,以及身处在这个行业的我们,都要重新投入到行业之中,开始期待和拥抱今年,又将会有哪些突破和成果迎接着我们。 手机厂商的AI大潮显然要比想象中来的更…

冬去春来天气阴晴不定 美食拿捏味蕾安稳换季

俗话说“春打六九头”,3月虽然已经入春,但是天气依然是凉飕飕的 ,冬天春天的换季期,因为天气的变化,尤为痛苦。但是来到了换季期,天气也不总是那么稳定,随着气温的起伏,我们的食欲也…

php常见的45个漏洞及解决方案

[TOC](太多了,目录只列出最重要的几个,剩下的同学们自己翻) PHP作为一种广泛应用的服务器端脚本语言,在历史上曾曝出过多种安全漏洞。以下是一些PHP漏洞的类别及其简要解释,以及如何解决这些问题&#xff1…

洗衣洗鞋店小程序对接水洗唛打印,一键预约,支付无忧

随着社会的进步和科技的发展,我们的生活幸福感与日俱增。为了让我们从琐碎中解脱出来,干洗店洗鞋店行业也日新月异。今天,我为大家推荐这款优秀的干洗店小程序系统,让您的洗衣洗鞋服务体验更上一层楼。 干洗店管理系统是一款专为洗…

利用MATLAB模拟点电荷的电场分布

一、实验目的: 1.熟悉点电荷的电场分布情况; 2.学会使用Matlab绘图; 二、实验内容: 1.根据库伦定律,利用Matlab强大的绘图功能画出单个点电荷的电场分布情况,包括电力…

填充每个节点的下一个右侧节点指针 II

题目链接 填充每个节点的下一个右侧节点指针 II 题目描述 注意点 初始状态下,所有 next 指针都被设置为NULL如果找不到下一个右侧节点,则将 next 指针设置为NULL 解答思路 首先想到的是层序遍历,将每一层的节点存储在队列中,…

鸿蒙文章专题-2021年鸿蒙相关的文章废弃

#原因 至于为什么说2021年我的鸿蒙专栏的文章废弃了,只是说没有了参考意义,是因为鸿蒙4.0以前的版本语言从以Java为主过渡为以ArkTS为主。以前的Java版本的工程已经无法再使用了,后续的开发都必须以ArkTS开发语言为主。 其中而且整个项目结构…