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()

本文来自企鹅号 - 测试攻城狮style媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏啸天"s blog

微信内置浏览器自动跳转其它浏览器

1.2K40
来自专栏Core Net

微信小程序:动画(Animation)

官方文档是这样说的:①创建一个动画实例 animation。②调用实例的方法来描述动画。③最后通过动画实例的 export 方法导出动画数据传递给组件的 ani...

3.1K10
来自专栏前端人人

React第三方组件1(路由管理之Router的使用⑤按需加载-下)

本教程总共6篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1、React第三方组件1(路由管理之Router的使用①...

30060
来自专栏移动开发之家

从Android到React Native开发(三、自定义原生控件支持)

恍惚间3个月过去了,作为揭棺而起的失踪人口,迟来的第三篇,也是react native原生相关的最后的一篇,是时候给收个尾了。这次就不废话了,直接上主题( ̄^ ̄...

12650
来自专栏Golang语言社区

Go语言服务器开发之简易TCP客户端与服务端实现方法

Go语言具备强大的服务器开发支持,这里示范了最基础的服务器开发:通过TCP协议实现客户端与服务器的通讯。 一 服务端,为每个客户端新开一个goroutine 代...

385140
来自专栏ionic3+

【Appetite】ionic3实录(二)UI分析及总体配置

首先,如果你是初学者,我强力建议你先看完我这篇文章: 【开发指南】(四)Ionic3快速上手并了解这些

12630
来自专栏IMWeb前端团队

Vue.js 插件开发详解

本文作者:IMWeb 林鑫 原文出处:IMWeb社区 未经同意,禁止转载 前言 随着 Vue.js 越来越火,Vue.js 的相关插件也在不断的被贡献...

42460
来自专栏前端下午茶

Vue项目预渲染机制引入实践

周末想顺便把已经做好静态页面的webApp项目做一下SEO优化,由于不想写蹩脚的SSR代码,所以准备采用预渲染,本来想着网上有这么多预渲染的文章,随便找个来跟着...

74420
来自专栏前端人人

React第三方组件2(状态管理之Refast的使用②异步修改state)

本教程总共5篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1、React第三方组件2(状态管理之Refast的使用①...

28130
来自专栏自动化测试实战

Flask第36篇——模板项目实战(二)

前面我们利用宏将首页代码进行了第一次优化。如果我们现在还有其他页面,试想一下,首页上面的搜索框

22330

扫码关注云+社区

领取腾讯云代金券