『与善仁』Appium基础 — 22、获取元素信息的操作(一)
1、获取元素文本内容
(1)text()方法
业务场景:
- 进入设置。
- 获取所有元素
class
属性为android.widget.TextView
的文本内容。
代码实现:
# 定位元素
text_vlaue = driver.find_elements_by_class_name("android.widget.TextView")
# 打印页面中class_name为android.widget.TextView元素的文本内容
for i in text_vlaue:
print(i.text)
(2)get_attribute()方法
# value:元素的属性
方法: get_attribute(value)
说明:
value='name'
返回content-desc/text
属性值。
(content-desc/text
属性值好像是不共存的,一个元素中这两个属性只有一个有值。)value='text'
返回text
的属性值。value='className'
返回class
属性值,
只有API=>18
才能支持(4.2.1版本以上就可以,7.1.1 API版本是25)value='resourceId'
返回resource-id
属性值,
只有API=>18
才能支持持(同上)
(3)综合练习
"""
1.学习目标
掌握appium元素文本信息获取
2.操作步骤
2.1 元素.text 获取元素text文本值(重点)
2.2 元素.get_attribute(value) 根据value值获取对应的内容
value = "name" 获取元素content-desc 或 text值(常用,重点)
value = "text" 获取元素text属性值
value = "className" 获取元素class属性值,Android 4.3以上版本
value = "resourceId" 获取元素id属性值,Android 4.3以上版本
3.需求
在设置APP中实现上述命令
"""
# 1.导入appium
import time
from appium import webdriver
# 2.创建Desired capabilities对象,添加启动参数
desired_caps = {
"platformName": "Android", # 系统名称
"platformVersion": "7.1.2", # 系统版本
"deviceName": "127.0.0.1:21503", # 设备名称
"appPackage": "com.android.settings", # APP包名
"appActivity": ".Settings" # APP启动名
}
# 3.启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
# 4.定位元素
# # 4.1 定位元素,搜索按钮,蓝牙
search = driver.find_element_by_id("com.android.settings:id/search")
blue_tooth = driver.find_element_by_android_uiautomator('new UiSelector().text("蓝牙")')
# 5.获取元素属性值
# 5.1 获取蓝牙的text值
print("蓝牙text属性值: ", blue_tooth.text)
print("蓝牙text属性值: ", blue_tooth.get_attribute("text"))
# 5.2 获取搜索的content-desc值
print("搜索的content-desc属性值: ", search.get_attribute("name"))
# 5.3 获取搜索的id属性值
print("搜索的id属性值: ", search.get_attribute("resourceId"))
# 5.4 获取搜索的class属性值
print("搜索的class属性值: ", search.get_attribute("className"))
# 6.关闭APP
time.sleep(3)
driver.quit()
执行结果:
蓝牙text属性值: 蓝牙
搜索的content-desc属性值: 搜索设置
搜索的id属性值: com.android.settings:id/search
搜索的class属性值: android.widget.TextView
2、获取元素在屏幕上的坐标
在移动端进行元素定位的时候,可能出现该元素位置不好定位,或者不能用上边属性的方式进行准确的定位,我们就可以用坐标的方式操作手机,如滑动操作有时候就需要用到。
使用方法:location
方法。
业务场景:
- 进入设置页面。
- 获取搜索按钮在屏幕的坐标位置。
代码实现:
# 定位到搜索按钮
get_value = driver.find_element_by_id("com.android.settings:id/search")
# 打印搜索按钮在屏幕上的坐标
print(get_value.location)
练习:
"""
1.学习目标
掌握appium获取元素坐标
2.操作步骤
元素.location 获取元素坐标
app页面坐标分部:
坐标原点-屏幕左上角(0,0)
从左向右 x坐标,逐渐增大
从上向下 Y坐标,逐渐增大
3.需求
在设置APP中实现蓝牙定位
"""
# 1.导入appium
import time
from appium import webdriver
# 2.创建Desired capabilities对象,添加启动参数
desired_caps = {
"platformName": "Android", # 系统名称
"platformVersion": "7.1.2", # 系统版本
"deviceName": "127.0.0.1:21503", # 设备名称
"appPackage": "com.android.settings", # APP包名
"appActivity": ".Settings" # APP启动名
}
# 3.启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
# 4.定位元素
blue_tooth = driver.find_element_by_android_uiautomator('new UiSelector().text("蓝牙")')
# 4.1 获取元素坐标
print("蓝牙坐标: ", blue_tooth.location)
# 输出结果:
# 蓝牙坐标: {'x': 86, 'y': 265}
# # 得到的坐标为元素左上角的坐标。
# 4.3 获取手机的宽度和高度
size = driver.get_window_size() # 获取手机屏幕大小
print(size) # {'width': 576, 'height': 1024}
# 6.关闭APP
time.sleep(3)
driver.quit()
提示:
我们可以获取元素的坐标,也可以定位在屏幕中某个坐标点进行操作。
『与善仁』Appium基础 — 22、获取元素信息的操作(一)的更多相关文章
- 『与善仁』Appium基础 — 17、元素定位工具(一)
目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...
- 『与善仁』Appium基础 — 18、元素定位工具(二)
目录 1.Appium Inspector介绍 2.Appium Inspector打开方式 3.Appium Inspector布局介绍 4.Appium Inspector工具的配置 5.Appi ...
- 『与善仁』Appium基础 — 19、元素定位工具(三)
目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...
- 『与善仁』Appium基础 — 21、元素的基本操作
目录 1.元素的基本操作说明 (1)点击操作 (2)清空操作 (3)输入操作 2.综合练习 1.元素的基本操作说明 (1)点击操作 点击操作:click()方法.(同Selenium中使用方式一致) ...
- 『与善仁』Appium基础 — 20、Appium元素定位
目录 1.by_id定位 2.by_name定位 3.by_class_name定位 4.by_xpath定位 5.by_accessibility_id定位 6.by_android_uiautom ...
- 『与善仁』Appium基础 — 25、APP模拟手势高级操作
目录 1.手指轻敲操作 2.手指按下和抬起操作 3.等待操作 4.手指长按操作 5.手指移动操作 6.综合练习 APP模拟手势的动作都被封装在TouchAction类中,TouchAction是App ...
- 『与善仁』Appium基础 — 29、获取toast信息
目录 1.toast介绍 2.toast定位 3.示例 4.封装toast判断 1.toast介绍 Android中的toast是一种简易的消息提示框,toast提示框不能被用户点击,会根据所设置的显 ...
- 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍
目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...
- 『与善仁』Appium基础 — 26、常用手机操作的API说明
目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...
随机推荐
- k8s endpoints controller分析
k8s endpoints controller分析 endpoints controller简介 endpoints controller是kube-controller-manager组件中众多控 ...
- AsExpandable EF多条件查询
我个人学习新技术有一个方法,如果遇到问题会根据以前的经验来寻找一些类似的解决方法.有人会说,如果这个问题在你的学习或者工作生涯中都没有遇到过呢?很简单,通过搜索资料或查阅相关书籍学习别人的经验. 在如 ...
- 升级npm后版本依然没有变 原来是全局npm设置的锅
最近准备给家里的老爷机打一个 react 的环境 win7系统还不算老~ 不过!由于很多年以前装的node了版本很低,所以赶紧去官网 下了一个 最新的稳定版本的. 卸载和安装都费了老大力了. 以为光明 ...
- 从零开始制作一个linux iso镜像
一.前言 对于一个极简化的linux系统而言,只需要三个部分就能组成,它们分别是一个linux内核.一个根文件系统和引导.以下是本文制作linux iso镜像所用到的系统和软件: OS ...
- 菜鸡的Java笔记 国际化程序实现原理
国际化程序实现原理 Lnternationalization 1. Locale 类的使用 2.国家化程序的实现,资源读取 所谓的国际化的程序 ...
- Hi3516开发笔记(二):Hi3516虚拟机基础环境搭建之串口调试、网络连接以及sftp文件传输
前言 搭建Hi3516的基础虚拟机,为交叉编译环境搭建前期工作.后续会编译一个基本的C语言程序Demo,在HI3516上跑. 虚拟机 开发本对虚拟机做了一些基本要求,如下图: 其实重 ...
- WinRAR下载
https://www.win-rar.com 垃圾7Z有的解压不了.
- idea明明设置了utf-8, 但是提交的配置文件到远程中文乱码
IDEA中编辑的.properties配置文件提交到Git后显示乱码 解决方法:
- idea提交代码好习惯-代码格式化
提交代码的时候,勾选这个可以格式化提交的代码,非常好! reformat code
- ThinkPad笔记本外放没声音解决办法(不是驱动的原因)
本人的本子是T480,自从装完Ubuntu系统之后W10系统就没有外放声音了,卸载Ubuntu之后还是没有声音,重装声卡驱动.重装系统之后依然无效. 我的解决办法是升级主板Bois,具体如下: 进入官 ...