zoukankan      html  css  js  c++  java
  • Appium

    1、capabilities设置与启动

    ①启动本地服务器

    ②启动检查器

    ③填入相应的参数

    deviceName获取方式:adb devices

    appPackage获取方式:aapt dump badging + 包名

    appActivity获取方式:aapt dump badging + 包名

    快速匹配:aapt dump badging + 包名 | find “launchable-activity”

    关于跟手机建立连接:

    https://blog.csdn.net/JOJOY_tester/article/details/72081905

    Appium几种定位元素的方法:

    1、id定位

    2、元素定位

    ①name、classname定位

    ②相对定位

    3、xpath定位('//*[@类名="xxx"]')

    XPath使用路径表达式从XML文档中选择一个或多个节点的列表。以下是有用的路径和表达,从XML文档选择节点的任何节点/列表清单。

    表达式描述
    node-name 选择具有给定名称的所有节点“nodename”
    / 选择从根节点开始
    // 选择从当前节点匹配开始的选择
    . 选择当前节点
    .. 选择当前节点的父节点
    @ 选择属性
    student 例如:选择名称为“student”的所有节点
    class/student 例如:选择属于类的所有学生的子类元素
    //student 选择文档中所有学生的元素

    谓词

    谓词用于查找特定的节点或一个节点含有特定的值,并使用所定义 [...] .

    表达式结果
    /class/student[1] 选择的是类元素的子第一个学生的元素
    /class/student[last()] 选择的是类元素的子最后一个学生的元素
    /class/student[last()-1] 选择的是类元素倒数的第二个学生的子元素
    //student[@rollno='493'] 选择一个名为rollno为'493'值的属性的学生元素

    xpath匹配符

    通配符描述
    * 匹配任何元素节点
    @* 匹配任何属性节点
    node() 匹配任何类型的节点
       

    4、list定位

    find_elements_by_xx (多个元素定位)

     生成随机的账户:用到random

    5、Android Uiautomator定位

     

     元素等待

    http://www.cnblogs.com/mengyu/p/6972968.html

    ①强制等待

    设置固定的等待时间,使用sleep()方法实现

    from time import sleep

    # 强制等待5秒

    sleep(5)

    ②隐式等待

    隐式等待是针对全部元素设置的等待时间

    driver.implicitly_wait(2)  # 等待2秒

    ③显式等待 

     显式等待是针对某个元素来设置的等待时间

     

     Toast元素识别

     

    H5元素搭建

    屏幕截图

    driver.save_screenshot() 保存截图到当前路径

    driver.get_screenshot_as_file() 保存截图到指定路径

    appium滑动操作

    连续滑动

    TouchAction

    先导入对应的模块:

    from appium.webdriver.common.touch_action import TouchAction

    对应操作的方法:

    短按:press()  按压一个元素或坐标

    TouchAction(driver). press(x,y) 

    长按:longpress()  比按压多个一个duration(按压时间)时间参数,以毫秒为单位

    TouchAction(driver).longpress(x,y,1000) 

    点击:tap()

    移动:move_to()

    暂停:wait() 等待时间,单位毫秒

    释放:release() 结束屏幕上的一系列动作的命令操作

    执行:perform() 讲执行的操作发送到服务器的命令操作

    组合示例:

    TouchAction(driver). press(x,y) .wait(1000).move_to(x2,y2).release() #点击->等待1000毫秒->移动->释放

    地图缩放

     MultiAction

    导入

    from appium.webdriver.common.touch_action import TouchAction

    from appium.webdriver.common.multi_action import MultiAction

     

    capabilities更改为yaml

    官网下载地址:https://pypi.org/project/pyaml/

    pip install pyyaml  安装yaml

    如果遇到报:

     处理方法:

    安装完毕后检测是否安装成功 cmd->python->import yaml

     

      

    日志收集

     

     首先我们日志需要按照info、debug、error等级别来进行区分的。当然这个级别可以自己去设置。在一般的情况下我们普通的输出我们直接用info类型,调试的时候用debug类型,如果预计有错误时那么我们就需要用error类型的日志,一般情况去info级别最为合适。

    日志格式化是为了提高日志的可阅读性,比如:时间+模块+行数+日志具体信息 的内容格式。如果日志信息杂乱无章的全部输出来,这样也不利于定位问题。如下所示就是日志格式化输出,非常便于阅读查看。

  • 相关阅读:
    putty GB18030乱码
    iptables小复习
    编译安装 openswan-2.6.34
    Windows常用的命令
    MySql实现远程连接
    防盗链
    java判断一个类是否公共类
    oracle sql性能
    状态模式让我们远离战战兢兢
    LVM管理
  • 原文地址:https://www.cnblogs.com/bufuhaoshiguang/p/10496630.html
Copyright © 2011-2022 走看看