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

获取text

# 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)

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)

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

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

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

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

时间: 2024-10-09 19:18:10

appium+python自动化34-获取元素属性get_attribute的相关文章

Selenium2+python自动化35-获取元素属性

前言 通常在做断言之前,都要先获取界面上元素的属性,然后与期望结果对比.本篇介绍几种常见的获取元素属性方法. 一.获取页面title 1.有很多小伙伴都不知道title长在哪里,看下图左上角. 2.获取title方法很简单,直接driver.title就能获取到 二.获取元素的文本 1.如下图这种显示在页面上的文本信息,可以直接获取到 2.查看元素属性:<a id="setf" target="_blank" onmousedown="return

Appium+python自动化

名称 链接地址 Appium+python自动化8-Appium Python API(上) http://mp.weixin.qq.com/s/WvpT5oRrYY22avI95FuypQ Appium+python自动化8-Appium Python API(下) http://mp.weixin.qq.com/s/rGWWf9m9-6n-J7KaGVlqoA Appium+python自动化9-SDK Manager http://mp.weixin.qq.com/s/wGyfXAwJ9M

UI自动化之特殊处理四(获取元素属性\爬取页面源码\常用断言)

获取元素属性\爬取页面源码\常用断言,最终目的都是为了验证我们实际结果是否等于预期结果 目录 1.获取元素属性 2.爬取页面源码 3.常用断言 1.获取元素属性 获取title:driver.title() 获取元素文本:driver.find_XX().text 获取元素标签:driver.find_XX().tag_name 获取元素的其他属性的值:driver.find_XX().get_attribute("class") 获取class属性的值 获取文本框输入的值:drive

Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP

前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itools安装.对于没有iPhone真机的小伙伴,想在iOS模拟器上安装app测试可不是那么容易的事情. 一.启动iOS Simulator 1.Xcode>Open Developer Tool>iOS Simulator,打开后在hardware里面选对应的iPhone版本就能启动模拟器了 2.第二

appium+python自动化50-生成定位对象模板templet(jinja2)

前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以选择:templet和mako 简单来说,本篇实现的目的是用代码去自动生成代码,做到代码自动化 接着上一篇讲:appium+python自动化49-yaml管理定位元素 jinja2简介 1.jinja2官方文档:官方文档 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发

js+jquery动态设置/增加/删除/获取元素属性的两种方法集锦对比(动态onclick属性设置+动态title设置)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>

Appium+python自动化8-Appium Python API

前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context current_context(self): Returns the cur

Appium+python自动化-Appium Python API

前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context current_context(self): Returns the cur

Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)

前言 自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇主要讲如何用firefox辅助工具进行元素定位. 元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%:操作元素10%,获取返回结果10%:断言10%.如果一个页面上的元素不能被定位到,那后面的操作就无法继续了.接下来就来讲webdriver提供的八种基本元素定位方法. 一.环境准备: 1.浏览器选择:Firefox 2.安装插件:Firebug和