Appium学习(3)——Appium Desktop

  我们知道,Appium 测试中有个很重要的组件是 Appium-Server,它主要用来监听我们的移动设备(真机或模拟器),然后将不同编程语言比如Python编写的 Appium测试脚本进行解析,最后驱动移动设备来运行测试。但是,2015 年12月8日,Windows版本发布了AppiumForWindows_1_4_16_1.zip,之后Appium-Server没有更新了。所以,新的工具 Appium Desktop出现了, 它来继续 Appium Server的使命,进行Appium 测试。当然,你可以卸载之前安装的 Appium Server了。

  项目介绍:https://github.com/appium/appium-desktop

  Appium Desktop是一款适用于Mac,Windows和Linux的应用程序,它以美观,灵活的UI为您提供Appium自动化服务器的强大功能。此应用程序提供了下载和运行Appium自动化服务器的便捷方式,以及用于检查Android或iOS应用程序的工具。

下载地址:https://github.com/appium/appium-desktop/releases

图1 Appium-windows-1.13.0.exe

1、下载成功之后,双击exe文件安装Appium-windows,安装成功之后出现以下界面:

图2 安装成功Appium-windows

2、双击图标,启动简单模式:

图3 简单模式

3、点击上面的启动按钮,它将在你指定的主机和端口上启动服务器,并打开一个显示服务器日志输出的新窗口:

图4 服务器日志

4、新建会话窗口,它允许你构建一组用于启动Appium会话的Appium所需功能。你可以针对当前运行的Appium Desktop服务器启动会话(默认设置),也可以针对各种其他端点启动会话,自定义服务器:

图5 新建会话窗口

5、Desired Capabilities,配置Appium会话的方式,它告诉Appium服务器你想要自动化哪种平台和应用程序。单击【另存为】按钮可为你的Desired Capabilities设置一个名称,进行保存。然后,你可以在【已保存的Desired Capabilities】选项卡下访问它,以便以后进行编辑或会话启动。单击【启动会话】可以启动Appium Desktop Inspector,Inspector可以直观地显示应用程序的状态,以及通过Appium在应用程序中执行某些交互的能力:

参考文档:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

图6 Desired Capabilities
图7 保存的Desired Capabilities

6、启动会话,打开Inspector,前提是你得先启动你的设备(真机或者模拟器):

图8 启动会话

官网介绍备注:启动Appium会话可能需要一些时间来加载,特别是在云服务上,所以请耐心等待。会话加载后,您应用的屏幕截图将显示在左侧。您可以将鼠标悬停在应用程序中的各种UI元素上,并突出显示它们。在Inspector窗口的中间是您的应用程序的层次结构,表示为XML。您可以通过单击它或单击屏幕截图视图中的元素来导航此树,然后会突出显示它们。当元素突出显示时,其信息将显示在Inspector右侧的详细视图中。此详细视图包含对元素采取的潜在操作以及元素属性的表,这些属性在确定如何使用特定的Appium定位器策略访问元素时非常有用。选择元素后,您还可以【点击】元素,或者【Send keys】到元素(如果它是文本字段)。当您对元素执行此类操作时,Inspector会将命令发送到Appium,后者将执行它。如果操作成功,将生成新的屏幕截图,您应该会看到应用程序的更新状态和XML。如果不成功,您将有机会看到错误消息:

图9 点击元素
图10 发送密钥

7、Inspector窗口的顶部包含一个小工具栏,其中的图标表示能够在Inspector中执行某些操作,比如:

#Back返回——call driver.back

#Refresh刷新——刷新源码和屏幕截图

#Recorder开始录制——打开录像机

#Quit退出会话——调用driver.quit并关闭Inspector

图11 Inspector工具栏

8、Recorder是Appium Desktop带的一个非常基本的动作录制器,可以监视使用Appium Desktop执行的操作,并显示代表这些操作的特定于语言和框架的代码,然后可以将代码复制并粘贴到相应的Appium客户端代码中并用于测试。不过,Recorder的目标不是生成生产就绪的测试代码,它只是一个帮助探索Appium API的工具,并演示某些自动化行为如何与特定语言和Appium库中的方法调用相对应。Recorder开启时,Inspector将显示另一个窗口:

图12 Recorder

  一开始,Recorder将不显示任何代码。我们必须采取一些操作比如【1+1=】,例如可以在应用程序中点击各种UI元素,或者在层次结构中,查找元素并【点击】它,或向其【发送keys】。执行【1+1=】操作时,代码将显示在Recorder窗口中,你可以在Recorder右上角的下拉菜单中选择特定的语言和框架:

图13 Python代码

  而且,Recorder也提供样本代码,点击以下按钮就可以显示:

图14 样本代码

  我们可以选择右上角的【复制】,然后可以将代码粘贴到Python文件中调试并运行它:

# This sample code uses the Appium python client

# pip install Appium-Python-Client

# Then you can paste this into a file and simply run with Python

from appium import webdriver

caps = {}

caps["platformName"] = "Android"

caps["platformVersion"] = "6.0"

caps["deviceName"] = "Android6.0"

caps["appPackage"] = "com.android.calculator2"

caps["appActivity"] = "Calculator"

driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)

el1 = driver.find_element_by_id("com.android.calculator2:id/digit_1")

el1.click()

el2 = driver.find_element_by_accessibility_id("plus")

el2.click()

el3 = driver.find_element_by_id("com.android.calculator2:id/digit_1")

el3.click()

el4 = driver.find_element_by_accessibility_id("equals")

el4.click()

driver.quit()

   最终我们可以看到,模拟器点击了1+1=2,然后退出:

图15 运行结果

9、官方结论:This is everything you need to know to use Appium Desktop successfully!Remember, Appium Desktop is not a replacement for understanding Appiumitself---it is simply a convenient tool for working with Appium on yourdesktop, and an Inspector for exploring your app. Have fun!

意思就是:这是你成功使用Appium Desktop所需了解的一切!请记住,Appium Desktop不是了解Appium本身的替代品 - 它只是在桌面上使用Appium的便捷工具,也是用于探索应用程序的Inspector。玩得开心!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容