文章目录
环境配置
安装Android SDK
安装Appium Server
https://bitbucket.org/appium/appium.app/downloads/
将下载的 AppiumForWindows.zip 进行解压,点击 appium-installer.exe 进行安装。
把安装目录下的**…\Appium\node_modules.bin**添加到系统变量Path后。
打开Windows命令提示符,输入appium-doctor
,检查所需环境是否satisfied。
安装Python Appium Client
使用pip
或者conda
等包管理器安装:
conda install Appium-Python-Client
爬取过程
使用Appium打开微信
from appium import webdriver
desired_caps = {
'platformName': 'Android',
'deviceName': '7aaab36a',
'platformVersion': '10',
'appPackage': 'com.tencent.mm',
'appActivity': 'com.tencent.mm.ui.LauncherUI'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
其中deviceName
通过adb devices
获得,platformVersion
通过adb shell getprop ro.build.version.release
获得安卓系统版本号。
//未完待补充
问题及解决
使用uiautomator遇到的bug
bad uiautomator
org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Command failed: C:\Windows\system32\cmd.exe /s /c "D:\android\android-sdk-windows\platform-tools\adb.exe -s 30836ece shell "ps 'uiautomator'""
ps: bad uiautomator
原因:可能是Android版本原因,一些命令语法不支持。
解决方法:
参考了https://blog.csdn.net/pjl6523853/article/details/72886048。
-
找到appium的安装目录下的adb.js文件,目录为:
Appium\node_modules\appium\node_modules\appium-adb\lib
-
找到
abd.js
,找到如下代码:ADB.prototype.shell = function (cmd, cb) { if (cmd.indexOf('"') === -1) { cmd = '"' + cmd + '"'; } var execCmd = 'shell ' + cmd; this.exec(execCmd, cb); }