• 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

  • 相关阅读:
    js数字格式化(加千分位逗号)
    [css]解决iframe在ios设备上无法滚动
    判断当前是否在微信浏览器环境
    TortoiseGit 提交代码每次需要输入用户名和密码?
    如何编写jQuery插件
    函数作用域
    HTTP动词
    如何减少全局变量污染?
    mysql表大字段最大长度限制设置
    update left join 多表关联更新
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/7942745.html
Copyright © 2020-2023  润新知