appium Desktop简介
1、Appium Desktop是一款用于Mac、Windows和Linux的开源应用。它是Appium更为优化的图形界面和appium相关的工具的组合:
Appium-server的图形界面。可以设置选项、启动/停止服务器、查看日志等功能;
且无须提前安装Node NPM,因为Node运行时直接与Appium Desktop绑定。
2、可以使用Inspector来查看应用程序的元素,并进行基本的交互。
Appium Desktop下载
下载地址:
https://github.com/appium/appium-desktop/releases
下载完成后,相关的环境变量配置好,就可以使用了
一、服务器启动窗口
1、基础服务使用(simple)
打开Appium桌面,页面显示服务器启动窗口。基本的选择是与所有的违约和修改主机和端口的能力开始Appium服务器。基本选项是启动一个带有默认值的Appium服务器,同时可以将主机和端口的进行修改。Start Server按钮包含Appium版本号,若有出错进行,将会发送报告给Appium团队。
2、使用高级选项服务(Advanced)
通过点击“Advanced”按钮,可以设置服务器端的各种配置。
3、服务器预设(Presets)
如果使用高级服务器选项,就能保存配置以备日后使用。只需将预置保存在“高级”选项卡上,然后您就可以从“预置”选项卡中回忆起并启动具有该配置的服务器。
二、服务输出窗口
启动服务器后,它将在指定的主机和端口上启动,并打开一个显示服务器日志输出的新窗口。
除了使用按钮来停止服务器之外,没有任何实际的交互。您还可以从这个窗口复制并粘贴日志,这在报告Appium问题时非常有用。
另一个按钮可用:“启动新会话”。单击它将打开新的会话窗口,使您可以在当前运行的服务器上启动一个检查器会话。
三、开启新会话窗口(Start New Session )
新的会话窗口允许您构造一组desired capabilities,用于启动Appium会话。您可以针对当前运行的Appium Desktop服务器(默认的)启动一个会话,或者您可以针对各种其他端点启动一个会话。
1、Desired Capabilities
在这里可以设置一些app启动信息{俗称:caps},需要platformName、devicesName、appPackage、appActivity等参数
appPackage与appActivity可以使用adb命令查看
caps参数详情可以通过官方文档查看:
https://github.com/appium/appium/blob/master/docs/en/riting-running-appium/caps.md
2、Saved Capability Sets
查看已经保存的caps
四、Inspector会话
caps填写完成后,点击start session就可以进入Inspector页
1、查看页面属性
点击任意一个元素,在右侧 Selected Element栏显示元素的id、xpath和属性信息
2、Tap、Send Keys、Clear事件
1)Tap:表示按键,选择任意一个元素->点击Tap,则会触发一个点击操作
2)Send Keys:表示输入,点击编辑框->点击Send Keys,则会触发一个输入操作,输入一些东西点击“Send Keys”按钮
3)clear:表示清除编辑框中内容,比如点击编辑框->点击Clear,上步中输入的东西被清除掉
3、录制脚本
点击“Start Recording”按钮,会打开Recorder面板
此时执行按键输入等操作,Appium会自动录制并生成相应的脚本在Recorder面板显示件中运行
自动录制的脚本默认为Java-Junit文件,可以点击“Java-Junit”下拉列表,选择其他的语言。我们现在以python为例,点击“Show/Hide Boilerplate Code”按钮生成一个完整的脚本文件,点击“Copy code to clipboard”按钮会将录制的脚本拷贝到剪贴板,把录制的脚本粘贴到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["devicesName"] = "demo"
caps["appPackage"] = "com.taobao.taobao"
caps["appActivity"] = "com.taobao.tao.TBMainActivity"
caps["aotuGrantPermission"] = "true"
caps["noReset"] = "true"
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
driver.implicitly_wait(10) #设置隐式等待
el1 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.support.v7.widget.RecyclerView/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.HorizontalScrollView/android.widget.LinearLayout/android.widget.TextView[4]")
el1.click()
el1.click()
el2 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.support.v7.widget.RecyclerView/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.HorizontalScrollView/android.widget.LinearLayout/android.widget.TextView[3]")
el2.click()
el4 = driver.find_element_by_accessibility_id("梦幻星空")
el4.click()
el5 = driver.find_element_by_id("com.taobao.taobao:id/searchEdit")
el5.clear()
driver.quit()
以上知识能使你成功使用Appium desktop。但是,Appium Desktop并不是Appium的替代品——它只是一个更为方便的桌面工具,以及一个应用程序的检查器。另外,不建议大家使用淘宝练习,坑太多。。。。
