美文网首页
『与善仁』Appium基础 — 30.获取元素文本内容

『与善仁』Appium基础 — 30.获取元素文本内容

作者: 繁华似锦Fighting | 来源:发表于2020-12-04 07:40 被阅读0次

    1、获取元素文本内容

    (1)text()方法

    业务场景:

    1. 进⼊设置
    2. 获取所有元素class属性为“android.widget.TextView”的⽂本内容

    代码实现:

    # 定位元素
    text_vlaue = driver.find_elements_by_class_name("android.widget.TextView")
    
    # 打印页面中class_name为android.widget.TextView元素的文本内容
    for i in text_vlaue:
        print(i.text)
    

    (2)get_attribute()方法

    # value:元素的属性
    ⽅法: get_attribute(value) 
    

    说明:

    • value='name' 返回content-desc / text属性值。

      (content-desc / text属性值 好像是不共存的,一个元素中这两个属性只有一个有值。)

    • value='text' 返回text的属性值。

    • value='className' 返回 class属性值,

      只有 API=>18 才能⽀持(4.2.1版本以上就可以,7.1.1 api版本是25)

    • value='resourceId' 返回 resource-id属性值,

      只有 API=>18 才能⽀持(同上)

    (3)综合练习

    """
    1.学习目标
        掌握appium元素文本信息获取
    2.操作步骤
        2.1 元素.text   获取元素text文本值(重点)
        2.2 元素.get_attribute(value)  根据value值获取对应的内容
            value = "name"   获取元素content-desc 或 text值(常用,重点)
            value = "text"   获取元素text属性值
            value = "className"  获取元素class属性值,Android 4.3以上版本
            value = "resourceId" 获取元素id属性值,Android 4.3以上版本
    3.需求
        在设置APP中实现上述命令
    """
    # 1.导入appium
    import time
    from appium import webdriver
    
    # 2.创建Desired capabilities对象,添加启动参数
    desired_caps = {
        "platformName": "Android",  # 系统名称
        "platformVersion": "7.1.2",  # 系统版本
        "deviceName": "127.0.0.1:21503",  # 设备名称
        "appPackage": "com.android.settings",  # APP包名
        "appActivity": ".Settings"  # APP启动名
    }
    
    # 3.启动APP
    driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
    
    # 4.定位元素
    # # 4.1 定位元素,搜索按钮,蓝牙
    search = driver.find_element_by_id("com.android.settings:id/search")
    blue_tooth = driver.find_element_by_android_uiautomator('new UiSelector().text("蓝牙")')
    
    # 5.获取元素属性值
    # 5.1 获取蓝牙的text值
    print("蓝牙text属性值: ", blue_tooth.text)
    print("蓝牙text属性值: ", blue_tooth.get_attribute("text"))
    # 5.2 获取搜索的content-desc值
    print("搜索的content-desc属性值: ", search.get_attribute("name"))
    # 5.3 获取搜索的id属性值
    print("搜索的id属性值: ", search.get_attribute("resourceId"))
    # 5.4 获取搜索的class属性值
    print("搜索的class属性值: ", search.get_attribute("className"))
    
    # 6.关闭APP
    time.sleep(3)
    driver.quit()
    
    

    执行结果:

    蓝牙text属性值:  蓝牙
    搜索的content-desc属性值:  搜索设置
    搜索的id属性值:  com.android.settings:id/search
    搜索的class属性值:  android.widget.TextView
    

    2、获取元素在屏幕上的坐标

    在移动端进行元素定位的时候,可能出现该元素位置不好定位,或者不能用上边属性的方式进行准确的定位,我们就可以用坐标的方式操作手机,如滑动操作有时候就需要用到。

    使用⽅法:location方法

    业务场景:

    1. 进⼊设置页⾯
    2. 获取搜索按钮在屏幕的坐标位置

    代码实现:

    # 定位到搜索按钮
    get_value = driver.find_element_by_id("com.android.settings:id/search")
    
    # 打印搜索按钮在屏幕上的坐标
    print(get_value.location)
    

    练习:

    """
    1.学习目标
        掌握appium获取元素坐标
    2.操作步骤
        元素.location   获取元素坐标
        app页面坐标分部:
            坐标原点-屏幕左上角(0,0)
            从左向右 x坐标,逐渐增大
            从上向下 Y坐标,逐渐增大
    3.需求
        在设置APP中实现蓝牙定位
    """
    # 1.导入appium
    import time
    from appium import webdriver
    
    # 2.创建Desired capabilities对象,添加启动参数
    desired_caps = {
        "platformName": "Android",  # 系统名称
        "platformVersion": "7.1.2",  # 系统版本
        "deviceName": "127.0.0.1:21503",  # 设备名称
        "appPackage": "com.android.settings",  # APP包名
        "appActivity": ".Settings"  # APP启动名
    }
    
    # 3.启动APP
    driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
    
    # 4.定位元素
    blue_tooth = driver.find_element_by_android_uiautomator('new UiSelector().text("蓝牙")')
    # 4.1 获取元素坐标
    print("蓝牙坐标: ", blue_tooth.location)
    # 输出结果:
    # 蓝牙坐标:  {'x': 86, 'y': 265}
    # # 得到的坐标为元素左上角的坐标。
    
    
    # 4.3 获取手机的宽度和高度
    size = driver.get_window_size()  # 获取手机屏幕大小
    print(size)  # {'width': 576, 'height': 1024}
    
    # 6.关闭APP
    time.sleep(3)
    driver.quit()
    
    

    提示:

    我们可以获取元素的坐标,也可以定位在屏幕中某个坐标点进行操作。

    相关文章

      网友评论

          本文标题:『与善仁』Appium基础 — 30.获取元素文本内容

          本文链接:https://www.haomeiwen.com/subject/axnmwktx.html