zoukankan      html  css  js  c++  java
  • 【AppUI】

    adb命令

    adb devices:当前设备

    adb shell:直接进入模拟器内部

    adb install -r <下载地址>:安装软件

    找到app入口:adb logcat | grep -i displayed

    com.xueqiu.android/.view.WelcomeActivityAlias

    根据入口启动app:adb shell am start -W -n <app入口> -S


    录制case

    1、Appium中输入 app基本信息,点击 start Session

    2、录制

    3、进行点击、输入等操作,在对应的Recorder中可以生成代码

    4、点击 键头所指的按钮,可以生成完整的可以运行的代码

    5、复制代码并运行

    如果报错,可能需要加个隐式等待时间  :

    driver.implicitly_wait(10)


    启动appium并记录日志:appium -g /tmp/appium.log


    元素定位:

    通过id、xpath定位,如果id定位元素多,那么需要用xpath进行定位,xpath最好用 相对定位,别用 绝对定位,一般都用xpath定位

    如果控件有 content-desc属性的话,可以用Accessibility_id定位,见下方代码

     

    为什么不通过Name、Class Name定位?安卓没有Name,Class Name只有几类,定位不准确

    使用 uiautomatorviewer,可以进行安卓控件定位(appium desktop也可以)

    和appium desktop相比,更快、不需要初始化的各种操作(具体操作见 “录制case”第一步)

    点击第二个按钮可以获取 当前界面,第三个按钮 可以获取到 “去掉无用代码”的界面,更快一些

    获取元素属性:get_attribute(),可用作断言

    注意单词拼写,这是规则

    public enum Attribute {
        CHECKABLE(new String[]{"checkable"}),
        CHECKED(new String[]{"checked"}),
        CLASS(new String[]{"class", "className"}),
        CLICKABLE(new String[]{"clickable"}),
        CONTENT_DESC(new String[]{"content-desc", "contentDescription"}),
        ENABLED(new String[]{"enabled"}),
        FOCUSABLE(new String[]{"focusable"}),
        FOCUSED(new String[]{"focused"}),
        LONG_CLICKABLE(new String[]{"long-clickable", "longClickable"}),
        PACKAGE(new String[]{"package"}),
        PASSWORD(new String[]{"password"}),
        RESOURCE_ID(new String[]{"resource-id", "resourceId"}),
        SCROLLABLE(new String[]{"scrollable"}),
        SELECTION_START(new String[]{"selection-start"}),
        SELECTION_END(new String[]{"selection-end"}),
        SELECTED(new String[]{"selected"}),
        TEXT(new String[]{"text", "name"}),
        // The main difference of this attribute from the preceding one is that
        // it does not replace null values with empty strings
        ORIGINAL_TEXT(new String[]{"original-text"}, false, false),
        BOUNDS(new String[]{"bounds"}),
        INDEX(new String[]{"index"}, false, true),
        DISPLAYED(new String[]{"displayed"}),
        CONTENT_SIZE(new String[]{"contentSize"}, true, false);
    }
    

      

    toast弹窗测试

    只能用uiautomator2,必须使用xpath查找 ,推荐第一种

     //*[@class='android.widget.Toast']

    //*[contains(@text, 'xxxx')]

    appium底层 抓到toast会创建一个模拟节点,这个节点的类名=包名

    MobileBy继承了By的区别:

     MobileBy继承了By,额外封装一层,多了 客户端定位方法

     android上的webview测试

    安卓不同系统的webview定位符可能不同

     android想要测试app 中的webview页面,有两种方法:

    1、需要用安卓6.0系统的模拟机(网易mumu不支持,建议使用android studio)进行测试,其他系统不支持

    2、使用真机测试的话,需要按章debug包,debug包 一般都打开了调试webview的开关


    capability语法 

     待补充


    数据驱动

    pyyaml地址:http://pyyaml.org.wiki/

    用PO后,其实不用数据驱动就可以,但是之后如果做平台的话,还是要做数据驱动的


    散谈

    1、class有 EditText的输入框才可以输入

    2、app source:类似 触屏的 DOM,都是这个界面的 控件结构

  • 相关阅读:
    「B/S端开发」如何将DevExtreme组件添加到React应用程序?
    完整UI组件库Kendo UI for Vue R3 2021
    DevExpress WPF界面控件
    DevExpress WinForm MVVM数据和属性绑定指南(Part 1)
    界面控件Telerik UI for WinForm初级教程
    ua-parser-js 实现获取浏览器信息和操作系统信息
    vue--axios 拦截器的简单介绍及使用场景
    css 插件
    去除List集合中的重复值(四种好用的方法)
    常州大学/企业微信/电费查询脚本
  • 原文地址:https://www.cnblogs.com/lwj-0923/p/13628595.html
Copyright © 2011-2022 走看看