zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    分布式哈希和一致性哈希算法
    消息队列rabbitmq的五种工作模式(go语言版本)
    Mysql查询缓存
    数据库的三大设计范式
    二叉树的常见算法
    消息队列选型分析
    Mysql防止索引失效原则
    Mysql索引优化单表、两表、三表实践
    数据结构 【栈与队列】
    谷歌实用插件
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/7942745.html
Copyright © 2011-2022 走看看