1、获取元素文本内容

(1)text()方法

业务场景:

  1. 进入设置。
  2. 获取所有元素class属性为android.widget.TextView的文本内容。

代码实现:

  1. # 定位元素
  2. text_vlaue = driver.find_elements_by_class_name("android.widget.TextView")
  3. # 打印页面中class_name为android.widget.TextView元素的文本内容
  4. for i in text_vlaue:
  5. print(i.text)

(2)get_attribute()方法

  1. # value:元素的属性
  2. 方法: 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. """
  2. 1.学习目标
  3. 掌握appium元素文本信息获取
  4. 2.操作步骤
  5. 2.1 元素.text 获取元素text文本值(重点)
  6. 2.2 元素.get_attribute(value) 根据value值获取对应的内容
  7. value = "name" 获取元素content-desc 或 text值(常用,重点)
  8. value = "text" 获取元素text属性值
  9. value = "className" 获取元素class属性值,Android 4.3以上版本
  10. value = "resourceId" 获取元素id属性值,Android 4.3以上版本
  11. 3.需求
  12. 在设置APP中实现上述命令
  13. """
  14. # 1.导入appium
  15. import time
  16. from appium import webdriver
  17. # 2.创建Desired capabilities对象,添加启动参数
  18. desired_caps = {
  19. "platformName": "Android", # 系统名称
  20. "platformVersion": "7.1.2", # 系统版本
  21. "deviceName": "127.0.0.1:21503", # 设备名称
  22. "appPackage": "com.android.settings", # APP包名
  23. "appActivity": ".Settings" # APP启动名
  24. }
  25. # 3.启动APP
  26. driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
  27. # 4.定位元素
  28. # # 4.1 定位元素,搜索按钮,蓝牙
  29. search = driver.find_element_by_id("com.android.settings:id/search")
  30. blue_tooth = driver.find_element_by_android_uiautomator('new UiSelector().text("蓝牙")')
  31. # 5.获取元素属性值
  32. # 5.1 获取蓝牙的text值
  33. print("蓝牙text属性值: ", blue_tooth.text)
  34. print("蓝牙text属性值: ", blue_tooth.get_attribute("text"))
  35. # 5.2 获取搜索的content-desc值
  36. print("搜索的content-desc属性值: ", search.get_attribute("name"))
  37. # 5.3 获取搜索的id属性值
  38. print("搜索的id属性值: ", search.get_attribute("resourceId"))
  39. # 5.4 获取搜索的class属性值
  40. print("搜索的class属性值: ", search.get_attribute("className"))
  41. # 6.关闭APP
  42. time.sleep(3)
  43. driver.quit()

执行结果:

  1. 蓝牙text属性值: 蓝牙
  2. 搜索的content-desc属性值: 搜索设置
  3. 搜索的id属性值: com.android.settings:id/search
  4. 搜索的class属性值: android.widget.TextView

2、获取元素在屏幕上的坐标

在移动端进行元素定位的时候,可能出现该元素位置不好定位,或者不能用上边属性的方式进行准确的定位,我们就可以用坐标的方式操作手机,如滑动操作有时候就需要用到。

使用方法:location方法。

业务场景:

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

代码实现:

  1. # 定位到搜索按钮
  2. get_value = driver.find_element_by_id("com.android.settings:id/search")
  3. # 打印搜索按钮在屏幕上的坐标
  4. print(get_value.location)

练习:

  1. """
  2. 1.学习目标
  3. 掌握appium获取元素坐标
  4. 2.操作步骤
  5. 元素.location 获取元素坐标
  6. app页面坐标分部:
  7. 坐标原点-屏幕左上角(0,0)
  8. 从左向右 x坐标,逐渐增大
  9. 从上向下 Y坐标,逐渐增大
  10. 3.需求
  11. 在设置APP中实现蓝牙定位
  12. """
  13. # 1.导入appium
  14. import time
  15. from appium import webdriver
  16. # 2.创建Desired capabilities对象,添加启动参数
  17. desired_caps = {
  18. "platformName": "Android", # 系统名称
  19. "platformVersion": "7.1.2", # 系统版本
  20. "deviceName": "127.0.0.1:21503", # 设备名称
  21. "appPackage": "com.android.settings", # APP包名
  22. "appActivity": ".Settings" # APP启动名
  23. }
  24. # 3.启动APP
  25. driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
  26. # 4.定位元素
  27. blue_tooth = driver.find_element_by_android_uiautomator('new UiSelector().text("蓝牙")')
  28. # 4.1 获取元素坐标
  29. print("蓝牙坐标: ", blue_tooth.location)
  30. # 输出结果:
  31. # 蓝牙坐标: {'x': 86, 'y': 265}
  32. # # 得到的坐标为元素左上角的坐标。
  33. # 4.3 获取手机的宽度和高度
  34. size = driver.get_window_size() # 获取手机屏幕大小
  35. print(size) # {'width': 576, 'height': 1024}
  36. # 6.关闭APP
  37. time.sleep(3)
  38. 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. k8s endpoints controller分析

    k8s endpoints controller分析 endpoints controller简介 endpoints controller是kube-controller-manager组件中众多控 ...

  2. AsExpandable EF多条件查询

    我个人学习新技术有一个方法,如果遇到问题会根据以前的经验来寻找一些类似的解决方法.有人会说,如果这个问题在你的学习或者工作生涯中都没有遇到过呢?很简单,通过搜索资料或查阅相关书籍学习别人的经验. 在如 ...

  3. 升级npm后版本依然没有变 原来是全局npm设置的锅

    最近准备给家里的老爷机打一个 react 的环境 win7系统还不算老~ 不过!由于很多年以前装的node了版本很低,所以赶紧去官网 下了一个 最新的稳定版本的. 卸载和安装都费了老大力了. 以为光明 ...

  4. 从零开始制作一个linux iso镜像

    一.前言     对于一个极简化的linux系统而言,只需要三个部分就能组成,它们分别是一个linux内核.一个根文件系统和引导.以下是本文制作linux iso镜像所用到的系统和软件:     OS ...

  5. 菜鸡的Java笔记 国际化程序实现原理

    国际化程序实现原理 Lnternationalization        1. Locale 类的使用        2.国家化程序的实现,资源读取                所谓的国际化的程序 ...

  6. Hi3516开发笔记(二):Hi3516虚拟机基础环境搭建之串口调试、网络连接以及sftp文件传输

    前言   搭建Hi3516的基础虚拟机,为交叉编译环境搭建前期工作.后续会编译一个基本的C语言程序Demo,在HI3516上跑.   虚拟机   开发本对虚拟机做了一些基本要求,如下图:    其实重 ...

  7. WinRAR下载

    https://www.win-rar.com 垃圾7Z有的解压不了.

  8. idea明明设置了utf-8, 但是提交的配置文件到远程中文乱码

    IDEA中编辑的.properties配置文件提交到Git后显示乱码 解决方法:

  9. idea提交代码好习惯-代码格式化

    提交代码的时候,勾选这个可以格式化提交的代码,非常好! reformat code

  10. ThinkPad笔记本外放没声音解决办法(不是驱动的原因)

    本人的本子是T480,自从装完Ubuntu系统之后W10系统就没有外放声音了,卸载Ubuntu之后还是没有声音,重装声卡驱动.重装系统之后依然无效. 我的解决办法是升级主板Bois,具体如下: 进入官 ...