热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

APP端自动化之Appium-desktop使用笔记

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

之前在 《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()

推荐阅读
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • Windows 环境下安装 Git 并连接 GitHub 的详细步骤
    本文详细介绍了如何在 Windows 系统中安装 Git 工具,并通过配置 SSH 密钥实现与 GitHub 的安全连接。包括下载、安装、环境配置及验证连接等关键步骤。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • TortoiseSVN与VisualSVN Server的安装及基本操作指南
    本文详细介绍了如何安装VisualSVN Server以及TortoiseSVN客户端,并提供了基本的操作步骤,包括配置仓库、用户管理及权限设置等关键环节。 ... [详细]
  • CentOS 7.2 配置防火墙端口开放
    本文介绍如何在 CentOS 7.2 系统上配置防火墙以开放特定的服务端口,包括 FTP 服务的临时与永久开放方法,以及如何验证配置是否生效。 ... [详细]
  • 新手指南:在Windows 10上搭建深度学习与PyTorch开发环境
    本文详细记录了一名新手在Windows 10操作系统上搭建深度学习环境的过程,包括安装必要的软件和配置环境变量等步骤,旨在帮助同样初入该领域的读者避免常见的错误。 ... [详细]
  • 本文总结了优化代码可读性的核心原则与技巧,通过合理的变量命名、函数和对象的结构化组织,以及遵循一致性等方法,帮助开发者编写更易读、维护性更高的代码。 ... [详细]
  • 推荐两款实用的网络诊断工具
    大家好,因为一些私事很久没有更新博客了。今天向大家介绍两款非常有用的网络诊断工具——Tracert和Telnet,帮助你更好地理解和解决网络问题。 ... [详细]
author-avatar
lookadgo_544
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有