如何正确的使用Appium?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
什么是 Appium
Appium 是一个开源的移动端自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且其是跨平台的,可用于 iOS 和 Android 操作系统。这也就意味着你可以针对不同的平台使用同一套 Api 来编写测试程序,以提高代码的服用行和可维护性。
为了更好的应对千变万化的需求,Appium 没有和某一门具体的语言绑死,开发者可以使用自己最熟悉的任何语言来使用该框架。Appium 之所以这么灵活完全得益于其优秀的设计思路,该框架使用 client-server 的设计模式,只要 server 端可以收到 client 端发送过来的请求,那么 client 端用什么语言来实现其实意义已经不大了,无关紧要。
这样的设计思想带来了巨大的好处,其一就是使框架可以做到支持多语言,其二则是可以把 server 端放在任何机器上,即使是云服务器上也完全没有问题。
想必在程序圈儿的你肯定对 Hello World 不陌生,每当我们学习一个新的技术的时候基本都会写一个 Hello World 的 demo 来快速熟悉该技术,同样,今天我就带着大家做一个入门 Appium。
首先我们把环境搭建起来,依次安装下列软件。
Android Studio
JDK
Python 3.8
PyCharm
网易模拟器
Appium 桌面版
之所以需要安装 Android Studio 完全是因为链接安卓模拟器调试 App 程序时会用到 Android SDK,而 Android Studio 附带了 Andoid SDK,固直接安装 Android Studio。另外我们选择 Appium 桌面版,是因为桌面版附带可视化操作界面,对新手比较友好。
其中前四个大家可能都比较熟悉,自行安装即可。Appium 则需从 https://github.com/appium/appium-desktop/releases/tag/v1.18.3 下载对应的版本直接安装就可以了。
安装完成后启动 Appium,Host 和 Port 默认即可,接着点击下面的配置按钮进入配置页,设置完成 Android Home 和 Java Home 后直接启动 Server 就可以了。
当看到如下界面时,恭喜你,Server 已经启动成功了。
接下来,我们开始完善 client 端,其实就是代码而已,直接调用 Api 即可。因为我们是要通过 Appium 来操控模拟器上的 App,所以需要先将模拟器启动。命令行输入 adb devices
如果看到以下信息,则说明模拟器是正常的。
接着就是编写 client 端代码了,
from appium import webdriver desired_capabilities = { "platformName": "Android", # 操作系统 "deviceName": "emulator-5554", # 设备 ID "platformVersion": "6.0.1", # 设备版本号 "appPackage": "com.tencent.mm", # app 包名 "appActivity": "com.tencent.mm.ui.LauncherUI", # app 启动时主 Activity 'noReset': True # 是否保留 session 信息 可以避免重新登录 } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities) print('链接到安卓模拟器')
有了以上信息之后,我们就可以通过程序直接链接到模拟器,然后自动启动微信 App 了。
那么启动了微信 App 之后我们还可以做什么操作呢?基本上我们手动可以做的操作,程序都可以替我们完成。
driver.find_element_by_id('com.tencent.mm:id/f8y').click() print('查找搜索按钮') time.sleep(3) driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys('Python 技术') print('查找搜索输入框 & 写入搜索关键字') time.sleep(3) driver.find_element_by_id('com.tencent.mm:id/tm').click() print('点击 icon 图标') time.sleep(3) driver.find_element_by_id('com.tencent.mm:id/cj').click() print('点击右上角头像') time.sleep(3) driver.find_element_by_id('com.tencent.mm:id/a1u').click() print('点击第一篇文章')
上面这一套代码做了什么操作呢,简言之就是通过搜索找到「Python 技术」公众号,然后再去到该公众号主页并且查看了第一篇文章。同时程序为了给 App 留出一点反应时间,我们在每次发送指令后均让程序休息 3 秒钟。
细心的你可能发现了,上述代码主要涉及到三个 Api, find_element_by_id()
、 send_keys()
以及 click
,看函数名也就知道是做什么的了。
那么,我们怎么知道某个元素的 ID 呢?这时候就又要请出我们的桌面版 Appium 了。点击「启动成功」界面右上角的放大镜图标。之后将上述程序中的配置信息添加上去,最后点击「Start Session」按钮,不出意外的话你应该能看到微信启动界面了,就是那个地球。
但是细心的你会发现,模拟器上的界面和 Appium 上的不一致,此时需要你刷新下 Appium 上的界面信息,点击下图中的刷新按钮就可以了。
如果想获取某个元素的 ID,那么则先选中选择按钮,接着选中你想要获取 ID 的元素即可。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。