Appium+python自动化:
https://www.cnblogs.com/yoyoketang/p/6128725.html
https://www.cnblogs.com/glumer/p/8485052.html
android-sdk下载参考:(豪的文档 --》SDK里installer_r24-4-windows)
https://www.cnblogs.com/summary-2017/p/8073225.html
电脑远程:
https://www.cnblogs.com/yoyoketang/p/6128808.html
前言:安装jdk,配置环境变量。
一,安装 android-sdk
遇到了更新下载失败问题:
解决国内访问Google服务器的困难:
1.启动 Android SDK Manager ;
2.打开主界面,依次选择「Tools」、「Options...」,弹出『Android SDK Manager - Settings』窗口;
3.在『Android SDK Manager - Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入mirrors.neusoft.edu.cn和80,并且选中「Force https://... sources to be fetched using http://...」复选框;4.设置完成后单击「Close」按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;
5.依次选择「Packages」、「Reload」。
设置环境变量:
1.在系统变量新建:ANDROID_HOME,对应变量值为:D:\androidsdk\android-sdk-windows(sdk安装路径)
;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\28.0.3;
加入环境变量Path中
cmd打开命令行窗口,在命令行窗口中输入adb -version
二,获取apk包名
cmd里:
aapt dump badging D:\test\xxx.apk(APK的全名,如手机淘宝.apk)
package: name='com.globalegrow.app.gearbest' versionCode='77' versionName='4.1.0' platformBuildVersionName='4.1.0' compileSdkVersion='28' compileSdkVersionCodename='9'
获取launcherActivity
launchable-activity: name='com.globalegrow.app.gearbest.SplashActivity' label='GearBest' icon=''
三、安装Node.js (豪的文档 --》SDK里 node-v10.15.3-x64)
下载地址:https://nodejs.org/en/
将Node.js的安装路径(也就是node.exe文件所在的目录)D:\Program Files\nodejs追加到环境变量Path中。
检查一下环境是否配置好,在命令行中输入npm
四、安装.net framework
由于Appium是用.net开发的,所以安装之前需要安装.net framework,否则安装过程中会报错,官网下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=30653
下载成功后直接点击安装即可。
四。appium客户端安装。(豪的文档 --》SDK里)
安装完之后打开
cmd:
adb devices
代表手机连接成功
pycharm安装Appium。
下载地址:https://bitbucket.org/appium/appium.app/downloads/
当前最新版本为 AppiumForWindows_1_4_16_1.zip ,注意这是一个 Windows 版本,如果你的电脑为MAC请下载 appium-1.5.3.dmg 。虽然你已经看到了这些下载包,但我不保证你能下载的下来。
所以,再来提供一个百度网盘的下载链接:https://pan.baidu.com/s/1pKMwdfX
我们以 Windows 为例,将下载的 AppiumForWindows.zip 进行解压,点击 appium-installer.exe 进行安装。
在Path中配置appium的环境变量,将安装的Appium文件夹所在目录\Appium\node_modules\.bin添加进path
cmd打开命令行窗口,输入appium-doctor ,出现以下提示,All Checks were successful ,说明环境配置成功。
https://blog.csdn.net/wy2210/article/details/79031283
六、安装appium - python - client(这步很重要,目的是需要将Python与appium关联起来)
pip install Appium-Python-Client
或者:
from appium import webdriver
desired_caps = {
'platformName': 'Android',
'deviceName': 'e9dede22',
'platformVersion': '5.0',
# apk包名
'appPackage': 'com.globalegrow.app.gearbest',
# apk的launcherActivity
'appActivity': 'com.globalegrow.app.gearbest.SplashActivity',
'appWaitActivity': ''
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# e9dede22 8733c6d4
C:\Program Files (x86)\NetSarang\Xshell 6\;C:\ProgramData\Oracle\Java\javapath;C:\Python27\Scripts;c:\windows\system32;D:\apache-jmeter-4.0\bin;D:\apache-ant-1.10.1\bin;E:\Python3\Python36-32;E:\Git\cmd;C:\Users\jiangjiahao\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\jiangjiahao\AppData\Local\Programs\Python\Python36-32\;E:\Python27;E:\Python27\Scripts;D:\apache-jmeter-4.0\lib\ext\ApacheJMeter_core.jar;D:\apache-jmeter-4.0\lib\jorphan.jar;D:\apache-jmeter-4.0\lib\logkit-2.0.jar;E:\Python3\Python36-32;%JAVA_HOME%\bin;%MAVEN_HOME%\bin;C:\Users\jiangjiahao\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\django;C:\Users\jiangjiahao\AppData\Local\Programs\Python\Python36-32\Scripts;C:\Users\jiangjiahao\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\Django-2.1.3-py3.6.egg\django;C:\Users\jiangjiahao\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\Django-2.1.3-py3.6.egg\django\bin;%JAVA_HOME%\bin;%IDEA_JDK_64%;%MAVEN_HOME%\bin;D:\worksoft\SDK\android-SDK\tools;D:\worksoft\SDK\android-SDK\platform-tools;D:\worksoft\SDK\android-SDK\build-tools\28.0.3;D:\worksoft\SDK\Appium\Appium\node_modules\.bin;D:\worksoft\SDK\Appium\Appium;
七,使用SDK自带工具定位。
八,appium工具定位。
九:
xpath定位:
支持:Android 和 iOS。但由于 iOS 10开始使用的 XCUITest 框架原声不支持,定位速度很慢,所以官方现在不推荐大家使用,也有其他替代的定位方式可使用。
使用绝对路径定位,如截图所显示的 xpath 路径
MobileBy.xpath("className/className/className/className")
使用相对路径定位
MobileBy.xpath("//className")
通过元素的索引定位
MobileBy.xpath("//className[index]")
通过元素的属性定位
一种属性:MobileBy.xpath("//className[@label='更多信息']")
两种属性:MobileBy.xpath("//className[@label='更多信息'][@isVisible='1']")
部分属性(最强大):MobileBy.xpath("//className[contains(@label,'更多')]")