当前位置: 首页 > news >正文

appium+python自动化34-获取元素属性get_attribute

获取text

1070438-20171201153658555-906775328.png

# coding:utf-8
from appium import webdriver
from time import sleep

desired_caps = {
                'platformName': 'Android',
                'deviceName': '127.0.0.1:62001',
                'platformVersion': '4.4.2',
                'appPackage': 'com.baidu.yuedu',
                'appActivity': 'com.baidu.yuedu.splash.SplashActivity',
                'noReset': 'true',
                'resetKeyboard': 'true',
                'unicodeKeyboard': 'true'
                }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

# 等主页面activity出现
driver.wait_activity(".base.ui.MainActivity", 10)

# 点取消升级
driver.find_element_by_id("com.baidu.yuedu:id/negativeUpgrade").click()

# 获取text
t1 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").text
print(t1)

tag_name

1.tag_name实质上是获取class属性

# 获取tag_name
t2 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").tag_name
print(t2)

1070438-20171201153719195-1137396045.png

2.打印结果:android.widget.TextView

get_attribute

1.获取content-desc属性,这里注意了,如果content-desc属性为空,那么获取的就是text属性,不为空获取的才是content-desc属性

2.content-desc属性为空,打印结果:书架

# content-desc为空,获取的是text
t3 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("name")
print(t3)

1070438-20171201153800836-964813358.png

3.content-desc属性不为空,打印结果:百度阅读

# content-desc
t4 = driver.find_element_by_id("com.baidu.yuedu:id/fragment_banner").get_attribute("name")
print t4

1070438-20171201153813648-1546527654.png

备注:content-desc属性也可以这样获取:get_attribute("contentDescription")

4.id,calss,text属性获取

# id
t5 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("resourceId")
print(t5)

# class
t6 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("className")
print(t6)

# text
t7 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("text")
print(t7)

5.其它属性获取,注意这里并不是所有的都可以获取,一些标准的属性是可以获取到的

# checkable
t8 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("checkable")
print t8

# clickable
t9 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("clickable")
print t9

1070438-20171201153938461-1474484226.png

size和location

1.获取size,返回的是字典,如:{'width': 84, 'height': 84}

2.获取location,返回的是字典,如:{'y': 38, 'x': 192}

# size
t10 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").size
print t10

# location
t11 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").location
print t11

参考代码

# coding:utf-8
from appium import webdriver

desired_caps = {
                'platformName': 'Android',
                'deviceName': '127.0.0.1:62001',
                'platformVersion': '4.4.2',
                'appPackage': 'com.baidu.yuedu',
                'appActivity': 'com.baidu.yuedu.splash.SplashActivity',
                'noReset': 'true',
                'resetKeyboard': 'true',
                'unicodeKeyboard': 'true'
                }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

# 等主页面activity出现
driver.wait_activity(".base.ui.MainActivity", 10)

# 点取消升级
driver.find_element_by_id("com.baidu.yuedu:id/negativeUpgrade").click()

# 获取text
t1 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").text
print(t1)

# 获取tag_name
t2 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").tag_name
print(t2)

# content-desc为空,获取的是text
t3 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("name")
print(t3)

# content-desc
t4 = driver.find_element_by_id("com.baidu.yuedu:id/fragment_banner").get_attribute("name")
print t4

# id
t5 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("resourceId")
print(t5)

# class
t6 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("className")
print(t6)

# text
t7 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("text")
print(t7)

# checkable
t8 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("checkable")
print t8

# clickable
t9 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").get_attribute("clickable")
print t9

# size
t10 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").size
print t10

# location
t11 = driver.find_element_by_id("com.baidu.yuedu:id/lefttitle").location
print t11

1070438-20171201154024742-1129658324.png
在学习过程中有遇到疑问的,可以appium+python QQ群交流:330467341

转载于:https://www.cnblogs.com/yoyoketang/p/7942745.html

相关文章:

  • 英语介词用法
  • jQuery基础教程
  • 在xx网站上, 用什么介词?
  • 【SqlServer】在SqlServer中把数据导入导出为Excel文件
  • exp之flashback_scnflashback_time
  • JAVASCRIPT高程笔记-------第 七章 函数表达式
  • 适应性超强的focus
  • 内存泄漏
  • 首页列表显示全部问答,完成问答详情页布局
  • POJ 2057 The Lost House 树形DP+贪心
  • JAVA Http Basic auth
  • 如何两个栈实现队列?两个队列实现栈?
  • Java之字符流操作-复制文件
  • 判断是否长按某一键
  • 【Android】封装一个简单好用的打印Log的工具类
  • Go 语言编译器的 //go: 详解
  • Java读取Properties文件的六种方法
  • PAT A1092
  • PHP 的 SAPI 是个什么东西
  • spring security oauth2 password授权模式
  • Spring框架之我见(三)——IOC、AOP
  • TypeScript实现数据结构(一)栈,队列,链表
  • VUE es6技巧写法(持续更新中~~~)
  • webpack入门学习手记(二)
  • yii2权限控制rbac之rule详细讲解
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 大数据与云计算学习:数据分析(二)
  • 人脸识别最新开发经验demo
  • 原生 js 实现移动端 Touch 滑动反弹
  • PostgreSQL之连接数修改
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #if和#ifdef区别
  • #Linux(make工具和makefile文件以及makefile语法)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (差分)胡桃爱原石
  • (汇总)os模块以及shutil模块对文件的操作
  • (七)c52学习之旅-中断
  • (转)3D模板阴影原理
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net MVC + EF搭建学生管理系统
  • .NET 中的轻量级线程安全
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET导入Excel数据
  • .Net语言中的StringBuilder:入门到精通
  • /etc/fstab 只读无法修改的解决办法
  • :=
  • @RequestMapping 的作用是什么?
  • [20170713] 无法访问SQL Server
  • [51nod1610]路径计数
  • [C#] 基于 yield 语句的迭代器逻辑懒执行