Appium 我理解是一款可以支持 Android iOS 以及 移动混合、H5 等开发技术的移动端测试框架
执行 Python 脚本做一个简单的自动化操作
官网
github
brew install node # get node.js
npm install -g appium # get appium
npm install wd # get appium client
appium & # start appium
node your-appium-test.js
这是官网给的环境搭建步骤,看起来很简单是吧。其实我想说 【你忙吧,我吃柠檬】根本就不是那么回事好吧,npm install -g appium 卡在这一步就没过去,卡在 “ info UiAutomator2 downloading UiAutomator2 Server APK v0.3.0 ” 一直在下载不下来 ,google baidu 大法全部用上了,国外的镜像淘宝的镜像,VPN 全开了 卡在一处一直下载不下来。[安装卡主部分见下图]
ok ~ 你赢了 ,不得已 server 我只好用了 GUI 的 Appium 客户端
也就是这样子,里面的配置我基本没有去做改动。点击 apple 图标右边的设置的时候 Server Address 可能为 0 建议把地址和端口号设置一下 127.0.0.1 端口号 4723
因为楼主本身从事 Android 开发 ,appium 所需要的 Android 环境以及模拟器已经搭建完毕,具体检测环境命令 terminal : appium-doctor
warning 我给忽略了
client 端 可以用 Java Python Ruby C# 等,我尝试去配置了 Java 和 Python 的 client 两个都有坑,最终选择了 Python
安装 Python 客户端有 3 种方式,分别做一下介绍:
命令式 和 GitHub 式都有坑,selenium 是 appium Python-Clinet 需要依赖的一个组件包,selenium 可能默认安装的是某个版本 ,然后你执行脚本的时候会报一堆莫名其妙的错误
Could not find a version that satisfies the requirement Appium-Python-Clinet (from versions: )
No matching distribution found for Appium-Python-Clinet
例如这, 网上查询原因是 selenium 版本太高了 需要降版本。【你忙吧,我吃柠檬】还有这种操作?然后 google baidu 大法搜索卸载 selenium 方法 和 selenium 低版本的资源。各种折腾,最终还是不行最终在 ide pycharm 上解决了。
Perferences -> Project -> Project Interpreter
- Appium-Python-Client
- selenium 3.0.1
点 + 号可以在网上搜索你需要安装的组件, pychrm 会帮你下载下来。注意 selenium 3.0.1 的版本需要选择降版本下载不然运行 Python 脚本会报错
from appium import webdriver
desired_caps = {
'platformName': 'Android',
'deviceName': '192.168.56.101:5555',
'platformVersion': '4.4.4',
'appPackage': 'com.android.calculator2',
'appActivity': 'com.android.calculator2.Calculator',
'noSign': 'True'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.find_element_by_name('7').click()
driver.find_element_by_name('+').click()
driver.find_element_by_name('8').click()
driver.find_element_by_name('=').click()
如果你上述环境都解决完毕运行这个脚本,在 1.5.3 的 sever 端下能把模拟器的计算机唤起,但是后续会报一个错误
InvalidSelectorException: Message: Locator Strategy 'name' is not supported for this session
意思告诉你不支持通过 name 去找元素,原因是 高版本的 appium server 不支持通过 name 去找元素。解决办法:
在电脑磁盘内找到 appium 下的 driver.js 文件。mac 环境地址见上图,也可以通过工具做全局搜索
见上图 支持寻找元素的方式有 ‘xpath’ ‘id’ 等 原本的 name 是不存在的,是我添加上去的。添加 name 后保存文件,退出 appium sever 端重启, pycharm 运行脚本。大功告成~
总结 , appium 可能去折腾一些环境 和 配置要比学习 appium 更难。这点对于初学者来说是非常不友好的,可能初学者在配置环境的过程中屡次的各种失败导致放弃。但是保持恒心解决各种环境和报错还是能取得最终的胜利。