• Appium中app的元素定位


    app定位方式,本文只讲Android手机的定位方式。

    前提条件是adb连接到模拟器或者是手机(具体连接方式这里不再讲解),证明已连接到设备

    adb devices

    app元素定位工具一:UI Automator Viewer

    这个工具是Android SDK自带的一个定位工具,具体页面截图如下:

    app元素定位工具二:Appium工具

    启动Appium,启动之后,页面有一个放大镜的按钮,如图所示:

     点击放大镜按钮,进入配置项,如果所示:

    platformName  --  系统名称

    platformVersion  -- 系统的版本

    deviceName  --  机型(随意添)

    appPackage  --  app包名(这里以淘宝为例)

    appActivity --  欢迎页面

    noReset --  启动app时不要清除app里的原有的数据(True)

    获取appPackage和appActivity的方法,com命令进入Android-sdk/build-tools-29.0.2目录下,执行命令

    aapt dump badging xxx.apk(安装包名称)

    app包名

    appActivity名称:

     

     设置好启动项参数后,启动会话。

    接下来说元素定位表达式,appium中的定位表达式,继承了selenium中的八大定位表达式(selenium的八大定位前边已经说过,就不再赘述),同时也有自己的定位表达式,分别是:

     

    AndroidUiAutomator定位

    使用UiAutomator中的UiSelector类来处理元素定位,该方法的参数为UiSelector类定位元素的表达式

    new UiSeletor().函数名称("定位表达式")

    实例化一个UiSelector对象,然后通过实例调用接口。

    这里常用的是ANDROID_UIANTOMATOR和ACCESSIBILITY_ID元素定位

    举个栗子:

    通过resrouce-id来定位

    find_element_by_android_uiautomator('new UiSelector().resourceId("com.taobao.taobao:id/textview_goods_title")')

     通过text来定位

    find_element_by_android_uiautomator('new UiSelector().text("文本内容")')

     通过content-desc定位

    find_element_by_android_uiautomator('new UiSelector().description("勾选宝贝")')

    id、class、content-desc定位

    通过id来定位(resrouce-id)

    find_element_by_id("com.taobao.taobao:id/textview_goods_title")

    通过ClassName定位(class)

    .find_element_by_class_name("android.widget.CheckBox")

    通过AccessibilityId定位(content-desc)

    find_element_by_accessibility_id("勾选宝贝")

    app定位中不建议使用xpath定位,多以此处也不再多赘述了。

  • 相关阅读:
    select(Linux 编程)
    Amazon DynamoDB, 面向互联网应用的高性能、可扩展的NoSQL数据库
    键值表
    工厂方法模式之C++实现
    spring(16)------spring的数据源配置
    LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)
    地图之CLLocationManager的使用 定位功能使用
    正则则表达式大全(收集)
    文件的读取和写入(指定路径)
    二维码(带有图片)的生成
  • 原文地址:https://www.cnblogs.com/xingyunqiu/p/11759494.html
Copyright © 2020-2023  润新知