热门标签 | 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()

推荐阅读
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文讨论了如何在不使用SearchBar display controller的情况下,单独使用SearchBar并捕获其textChange事件。作者介绍了实际状况,即左侧SliderMenu中的SearchBar需要在主页TableView中显示搜索结果。然后,作者提供了解决方案和步骤,帮助读者实现这一功能。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了win7系统休眠功能无法启动和关闭的解决方法,包括在控制面板中启用休眠功能、设置系统休眠的时间、通过命令行定时休眠、手动进入休眠状态等方法。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
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社区 版权所有