zoukankan      html  css  js  c++  java
  • (appium+python)UI自动化_07_app UI自动化实例【叮咚搜索加车为例】

    前言

    初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化。小编在初期学习的时候也有这种疑惑,在此以叮咚买菜app-搜索加车为实例,展示下appium是如何实现自动化的。

    前提:已安装配置好appium+python自动化环境

    一、连接手机启动app

    1,连接手机

          -手机USB连接电脑

          -手机打开开发者模式、USB调试功能

    2,基础信息配置

    基础连接信息如下(以叮咚app为例):

    'platformName':  操作平台
    'deviceName': 设备名称
    'platformVersion':系统版本号
    'appPackage': apk包名
    'appActivity':apk activity
    'noReset': 在此会话之前不要重置应用程序状态,即非初始化。参数值:true, false
    更多配置参数信息可参考:https://www.cnblogs.com/D666/p/9165086.html

    备注:获取设备号/ app包名/activity详情可查看 https://www.cnblogs.com/mini-monkey/p/11691862.html

    3,启动appium服务

    1,启动appium获取appium服务地址

    appium启动页获取host和port,默认配置host:0.0.0.0,port:4723,

    即默认appium服务地址为:http://0.0.0.0:4723/wd/hub(若配置其他host&port更新http://后内容为host:port即可)

    4,连接设备,启动app

     Remote括号中地址:appium服务地址(步骤3中获取)

    二、编写搜索脚本

    1,打开定位工具uiautomatorviewer,查看元素属性

    关于定位工具的可参考:https://www.cnblogs.com/mini-monkey/p/11819549.html

    点击Android adk->tools->automatorviewer

    鼠标选中页面元素,右下角查看元素属性

     2,定位元素

    元素定位方法可参考:https://www.cnblogs.com/mini-monkey/articles/11836650.htmlhttps://www.cnblogs.com/mini-monkey/articles/11836690.html

    appium常用API可参考:https://www.cnblogs.com/mini-monkey/articles/11841354.htmlhttps://www.cnblogs.com/mini-monkey/articles/11841370.html

    一般元素id存在时,先根据id定位,其次是class,然后再是xpath、uiautomator等去定位。优先级不一定是这样的,小编一般习惯这样定位,大家可以根据自己的喜好选择定位方式。

    叮咚搜索商品加车过程如下:

    首页点击搜索框->输入搜索关键词,点击搜索btn->搜索结果页,点击加车btn->点击购物车图标(进入购物车页)

    实现搜索加车自动化便可根据以上步骤展开编写,叮咚搜索商品加车脚本如下(以搜索鸡翅为例):

    备注:由于app有的页面加载需要时间,可在需要等待的地方添加等待时间。

    三、实例代码详情

    叮咚搜索加车的总代码如下:

     1 # 叮咚appium实例
     2 from appium import webdriver
     3 from time import sleep
     4 
     5 # 基础信息配置
     6 desired_caps = {
     7     'platformName': 'Android',  # 平台
     8     'deviceName': 'emulator-5554',  # 手机设备名称
     9     'platformVersion': '6.0.1',  # 安卓系统版本号
    10     'appPackage': 'com.yaya.zone',  # apk包名
    11     'appActivity': 'com.yaya.zone.activity.SplashActivity',  # apk activity
    12     'unicodeKeyboard': True,  # 设置编码格式为unicode
    13     'resetKeyboard': True,  # 隐藏手机键盘
    14     'noReset': True,  # 非初始化
    15 }
    16 
    17 driver = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)  # 启动app
    18 sleep(5)  # 等待叮咚首页加载【app加载页面有时需加载一段时间,故可在需要加载等待的地方可加上等待时间】
    19 
    20 driver.find_element_by_id("com.yaya.zone:id/ll_search").click()  # 首页-点击搜索框
    21 sleep(1)  
    22 driver.find_element_by_id("com.yaya.zone:id/et_what_search").send_keys("鸡翅")  # 输入关键词
    23 sleep(1)
    24 driver.find_element_by_id("com.yaya.zone:id/btn_cancel").click()  # 点击搜索btn
    25 sleep(3)
    26 driver.find_element_by_id("com.yaya.zone:id/iv_add_cart").click()  # 搜索结果页-点击加车btn
    27 sleep(1)
    28 driver.find_element_by_id("com.yaya.zone:id/iv_cart").click()  # 点击购物车btn,进入购物车页
    29 sleep(3)
    
    

     

  • 相关阅读:
    uva 10900
    uva 11181
    Codeforces Round #256 (Div. 2) Multiplication Table
    UVALive 3977
    LA 4384
    Linear Regression
    Hadoop InputFormat浅析
    codeforces 432D Prefixes and Suffixes
    php学习小记2 类与对象
    php学习小记1
  • 原文地址:https://www.cnblogs.com/mini-monkey/p/11854012.html
Copyright © 2011-2022 走看看