『与善仁』Appium基础 — 22、获取元素信息的操作
目录- 1、获取元素文本内容
- (1)text()方法
- (2)get_attribute()方法
- (3)综合练习
- 2、获取元素在屏幕上的坐标
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()
提示:
我们可以获取元素的坐标,也可以定位在屏幕中某个坐标点进行操作。
__EOF__