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

備注: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

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


在學習過程中有遇到疑問的,可以appium+python QQ群交流:330467341


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM