zoukankan      html  css  js  c++  java
  • APP端自动化 之 Appium-desktop使用笔记

    之前在 《APP端自动化 之 Windows-Android-Appium环境搭建》中最后一步有安装 appium客户端(Appium-desktop),便于后续抓取app上定位信息。

    启动Appium服务:

    双击打开安装后的appium 图标,如下图:

     

    显示默认监控的 host 和 port ,这和 Appium-Server中是一致的。点击 “Start Server V 1.6.5” 按钮就启动了Appium服务。服务启动页如下:

     

    上述启动步骤等于同cmd命令窗口输入appium,启动服务

    启动Appium Inspector

    启动AppiumDesktop以后点击该页面右上角的Start New Session按钮

     

    接着就会启动一个新的会话窗口(如下图),在这个窗口我们需要配置一些Desired Capabilities信息

     

    Appium 初始化配置信息(Desired Capabilities)可以用上一篇内容中代码中写到的初始信息直接填入进去(如下图),配置好这些信息以后点击Save As...进行保存,可以将这些信息保存保存在“Saved Capability Sets”里,以便下次直接使用。然后点击“Start Session"启动Inspector

     

    Appium Inspector页基本功能

    打开的是手机QQ登录页面,Appium Inspector基本功能如下

     

    (1)定位元素

     写Appium脚本的最重要的一个信息是定位元素,定位元素的方式和selenium类型,有id、xpath、accessibility_id等。点击Inspector最左边一栏的Select Elements按钮,点击想要获取信息的元素,点到对应元素后,其信息将显示在Inspector右侧的详细视图中。在Inspector窗口的中间显示的是应用程序的层次结构

      

    定位到元素后,在右侧“Select Element ”元素详情视图中,点击"Tap"按钮,就代表点击“登录”按钮,然后跳转至登录页面;如果定位的元素是文本输入,则点击"Send Keys" 会弹出需输入的文本

    (2)对定位的登录按钮进行校验

     比如用id定位,把右侧 id的信息为:com.tencent.mobileqq:id/btn_login 复制下来,然后点击 Search for element 进行搜索元素,Locator Strategy选择 id,Selector: 填入右侧id对应的值:com.tencent.mobileqq:id/btn_login,然后点击 'Search'按钮,对该元素进行查找

     

      查找到元素后,弹出下面的窗口,“Tap Element ”表示点击元素,如果元素是文本输入,则在“Enter keys”中输入内容,再点击"Send Keys" ,因为我们定位的是“登录”按钮,因此是然后点击“Tap Element ”,然后点击 “Done”按钮

     

     与QQ登录流程一样,点击“登录”按钮跳转至登录页面,Inspector左侧显示的登录页,说明元素定位并操作成功

     

     (3)录制脚本

     录制脚本是个很实用的功能,对于我这种新手学习APP自动化有很好的帮助,并且可以将脚本转为不同语言

    点击"Start Recording"按钮开始进入录制

    按以下截图对QQ登录功能进行录制操作:

    • 定位”登录”按钮,进行“点击“操作

    • 进入到登录页,点击“帐号”文本框

    • 帐号文本框中输入QQ号

     

    • 定位到密码文本框

     

    • 密码文本框中输入密码

     

    •  定位“登录”按钮并点击,进行登录操作

    • QQ登录成功,停止录制

    "Show/Hide Boilerplate Code"中间区域代码是否展示,可以查看每一步增加的代码(如下图)

     ”Copy code to clipboard"可以将代码复制至剪贴板,可直接粘贴出来

     

     以下是录制的打开手机QQ,进行登录操作的录制的python代码:

     1 # This sample code uses the Appium python client
     2 # pip install Appium-Python-Client
     3 # Then you can paste this into a file and simply run with Python
     4 
     5 from appium import webdriver
     6 
     7 caps = {}
     8 caps["platformName"] = "Android"
     9 caps["platformVersion"] = "4.4.2"
    10 caps["deviceName"] = "127.0.0.1:52001"
    11 caps["appPackage"] = "com.tencent.mobileqq"
    12 caps["appActivity"] = "com.tencent.mobileqq.activity.SplashActivity"
    13 caps["unicodeKeyboard"] = True
    14 caps["resetKeyboard"] = True
    15 caps["noReset"] = True
    16 
    17 driver = webdriver.remote("http://localhost:4723/wd/hub", caps)
    18 
    19 el1 = driver.find_element_by_id("com.tencent.mobileqq:id/btn_login")
    20 el1.click()
    21 el2 = driver.find_element_by_accessibility_id("请输入QQ号码或手机或邮箱")
    22 el2.click()
    23 el2.send_keys("623447784")
    24 el3 = driver.find_element_by_id("com.tencent.mobileqq:id/password")
    25 el3.click()
    26 el3.send_keys("**********")
    27 el4 = driver.find_element_by_id("com.tencent.mobileqq:id/login")
    28 el4.click()
    29 
    30 driver.quit()
  • 相关阅读:
    搭建Keil C51开发环境
    源码分析之Handler
    Android中的算法
    Android中的数据结构
    高级UI-UI绘制流程
    高级UI-Path和PathMeasure
    高级UI-画板Canvas
    高级UI-滤镜和颜色通道
    高级UI-高级渲染
    高级UI-画笔Paint
  • 原文地址:https://www.cnblogs.com/fenggf/p/10531186.html
Copyright © 2011-2022 走看看