Appium Desktop 使用

Appium Desktop

元素定位

与Android的uiautomatorviewer一样,可进行元素定位,某些app 在 uiautomatorviewer中获取不到元素,小编这里就遇到获取某个页面元素时,一直报错,使用AppiumDesktop完美解决,AppiumDesktop也可以定位iOS的APP,以下示例都在Android中演示。

录制脚本

支持多种语言,语言可自己选择,目前这个功能只做学习的工具,不能够作为代码生成器(In sum, it is a learning tool, not a robust code generation feature, and should be used as such.)。

启动Appium Desktop服务

点击start server启动服务

启动后页面

启动Appium Inspector

启动AppiumDesktop后点击该页面右上角的Start New Session按钮,就会启动一个新的会话窗口(如下图),这里配置Desired Capabilities信息:

这里是以Android机为例进行设置:

platformName:Android机

platformVersion:Android机系统版本

deviceName:Android机名称,通过adb devices 命令获取

appPackage:app包名

appActivity:启动栈名称。

想要获知更全面的Desired Capabilities请看官网:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

点击Save As...进行保存,设置信息被保存在“Saved Capability Sets”里方便以后使用。点击Start Session就可以启动Inspector了。

元素定位

点击select element 按钮,选中需要定位的元素,右侧即展示出对应的元素定位信息,appium自动判断可通过哪些元素进行定位。下图例子账号框可通过xpath定位到。

模拟滑动操作

在页面中,我们怎么模拟手指滑动操作呢?

点击 Swipe By Coordinates,模拟手指在手机上的操作,点击开始点和结束点实现滑动

操作元素

点击某个元素进行下一步操作,比如例子中定位到密码框,输入密码,清除文本框内容等操作。

录制脚本

点击脚本录制按钮,对元素进行操作,脚本录制语言是可选择的。

我这里是选择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

fromappiumimportwebdrivercaps = {}caps["platformName"] ="Android"

caps["platformVersion"] ="6.0"

caps["deviceName"] ="ssss2"

caps["appPackage"] ="com.taobao.mobile.dipei"

caps["appActivity"] ="com.eg.android.AlipayGphone.AlipayLogin"

driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)el3 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout[1]/android.widget.EditText")el3.send_keys("123456")el4 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout[2]/android.widget.EditText")el4.send_keys("123456")driver.quit()

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171229G0VMVC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券