1、获取元素文本内容

(1)text()方法

业务场景:

  1. 进入设置。
  2. 获取所有元素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方法。

业务场景:

  1. 进入设置页面。
  2. 获取搜索按钮在屏幕的坐标位置。

代码实现:

# 定位到搜索按钮
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、获取元素信息的操作(一)的更多相关文章

  1. 『与善仁』Appium基础 — 17、元素定位工具(一)

    目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...

  2. 『与善仁』Appium基础 — 18、元素定位工具(二)

    目录 1.Appium Inspector介绍 2.Appium Inspector打开方式 3.Appium Inspector布局介绍 4.Appium Inspector工具的配置 5.Appi ...

  3. 『与善仁』Appium基础 — 19、元素定位工具(三)

    目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...

  4. 『与善仁』Appium基础 — 21、元素的基本操作

    目录 1.元素的基本操作说明 (1)点击操作 (2)清空操作 (3)输入操作 2.综合练习 1.元素的基本操作说明 (1)点击操作 点击操作:click()方法.(同Selenium中使用方式一致) ...

  5. 『与善仁』Appium基础 — 20、Appium元素定位

    目录 1.by_id定位 2.by_name定位 3.by_class_name定位 4.by_xpath定位 5.by_accessibility_id定位 6.by_android_uiautom ...

  6. 『与善仁』Appium基础 — 25、APP模拟手势高级操作

    目录 1.手指轻敲操作 2.手指按下和抬起操作 3.等待操作 4.手指长按操作 5.手指移动操作 6.综合练习 APP模拟手势的动作都被封装在TouchAction类中,TouchAction是App ...

  7. 『与善仁』Appium基础 — 29、获取toast信息

    目录 1.toast介绍 2.toast定位 3.示例 4.封装toast判断 1.toast介绍 Android中的toast是一种简易的消息提示框,toast提示框不能被用户点击,会根据所设置的显 ...

  8. 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍

    目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...

  9. 『与善仁』Appium基础 — 26、常用手机操作的API说明

    目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...

随机推荐

  1. Java学习(二十)

    今天学习了Java中的package和import 在包中写了一点作为练习 如果把Test02放到别的包,就需要import到别的包,就像这样,Test02在HelloWorld包 如果删掉impor ...

  2. 使用jiava打印一个三角形

    public class ForDemo { public static void main(String[] args) { /* 打印一个5行高的三角形,首先将三角形分成三部分: 第一部分是前面的 ...

  3. SQLServer创建约束

    --创建数据库create database studentson primary(    name=stu_data,    filename='f:\SQL\stu_data.mdf',    s ...

  4. Java 插入html字符串到PPT幻灯片

    通过Java后端代码操作PPT幻灯片时,可直接在幻灯片中绘制形状,并在形状中添加文本字符串内容.本篇文章,介绍一种通过html字符串来添加内容到PPT幻灯片的的方法,可添加文字.图片.视频.音频等.下 ...

  5. 深度剖析Spring Boot自动装配机制实现原理

    在前面的分析中,Spring Framework一直在致力于解决一个问题,就是如何让bean的管理变得更简单,如何让开发者尽可能的少关注一些基础化的bean的配置,从而实现自动装配.所以,所谓的自动装 ...

  6. 洛谷 P6144 - [USACO20FEB]Help Yourself P(二项式定理+线段树)

    题面传送门 题意: 给定 \(n\) 条线段,第 \(i\) 条线段左右端点分别为 \(l_i,r_i\) 定义一个线段集合的复杂度为其形成的连通块的个数的 \(k\) 次方. 求这 \(n\) 条线 ...

  7. Atcoder Regular Contest 058 D - 文字列大好きいろはちゃん / Iroha Loves Strings(单调栈+Z 函数)

    洛谷题面传送门 & Atcoder 题面传送门 神仙题. mol 一发现场(bushi)独立切掉此题的 ycx %%%%%%% 首先咱们可以想到一个非常 naive 的 DP,\(dp_{i, ...

  8. [Ocean Modelling for Begineers] Ch3. Basics of Geophysical Fluid Dynamics

    Ch3. Basics of Geophysical Fluid Dynamics 本章主要介绍 标量与向量 Newton定律 波动与恒定状态流体 浮力 科氏力 守恒律 紊动 N-S方程 3.1 Un ...

  9. miRNA预测工具miRDeep-P2

    之前讲过预测植物miRNA的一款软件miR-PREFER, 今天在介绍一款软件miRDeep-p2, 也叫miRDP2 安装 在此之前,应安装一下软件 Bowite, Bowtie2, Vienna ...

  10. perl 子函数传入多个数组

    perl中的引用和C中的指针一样,用"\"标识,引用后可使用符号"->"取值.解引用则在对应的数据类型前加$,@ 或%. 这里这里用两数组求和做示例,引用 ...