使用Python+Appium自动化京东领金币教程

2 下载量 44 浏览量 更新于2024-09-03 收藏 537KB PDF 举报
"本文介绍了如何使用Python和Appium自动化实现京东双十一期间的金币领取功能。通过解析描述,我们可以了解到这个过程涉及移动应用自动化测试、Android设备管理和Python编程。" 在移动互联网时代,许多用户会参与各种应用程序中的活动,例如京东的双十一领金币任务。由于这些任务重复且耗时,因此利用自动化工具进行处理成为了一种高效的选择。在这个案例中,作者选择使用Python和Appium来实现这一目标。 首先,为了准备自动化,我们需要获取京东APP的相关信息。在Windows环境下,通过命令行工具cmd,我们可以使用`adb devices`检查手机是否已正确连接到电脑。接着,通过`adb shell pm list packages -3`命令列出所有第三方应用的包名,找到京东APP的包名,即`com.jingdong.app.mall`。进一步,我们需要找到APP的主Activity,这通常用于启动应用。通过`adb shell monkey -v -v -v -p com.jingdong.app.mall 10`运行Monkey命令,观察日志找出Activity,例如`.main.MainActivity`。 接下来,编写Python代码来控制Appium。Appium是一个跨平台的移动应用自动化框架,支持iOS和Android。在Python中,我们导入`webdriver`模块,并创建一个`desired_caps`字典,其中包含`platformName`(这里是Android)、`deviceId`(通常是手机的IP地址和端口号)、`platformVersion`(Android系统的版本号)、`appPackage`(京东APP的包名)和`appActivity`(主Activity)。然后,通过`webdriver.Remote()`初始化一个Appium驱动,指定Appium服务器的地址(通常是`http://127.0.0.1:4723/wd/hub`),并传递`desired_caps`作为参数,来启动京东APP。 启动Appium服务器是自动化流程中的下一步。在Appium界面设置好相应的参数后,点击运行按钮启动服务。 为了与APP内的元素交互,如点击按钮领取金币,通常我们会使用UI自动化工具,如uiautomatorviewer。然而,如果遇到困难,可以采用坐标点击的方式,即根据屏幕上的像素位置模拟点击。uiautomatorviewer位于Android SDK的`tools`目录下,它能帮助开发者获取到界面上元素的属性,如class、id等,以便编写更精确的自动化脚本。 虽然坐标点击方法在某些情况下可能更为直接,但它并不总是可靠的,因为屏幕分辨率和布局的变化可能会影响到元素的位置。因此,建议在能够获取到元素属性的情况下,优先使用属性进行定位,这样可以提高脚本的稳定性和可维护性。 总结来说,本文提供了一个使用Python和Appium自动化执行京东APP内任务的实例,展示了移动应用自动化的基本步骤,包括获取APP信息、编写自动化脚本以及使用辅助工具进行元素定位。这样的自动化解决方案不仅可以节省时间,还能避免手动操作的繁琐和错误,尤其适用于类似双十一这种需要频繁重复操作的活动。
2018-09-17 上传
# JD_AutoBuy ## 京东抢购 Python爬虫,自动登录京东网站,查询商品库存,价格,显示购物车详情等。 可以指定抢购商品,自动购买下单,然后手动去京东付款就行。 ## chang log + 2017-03-30 实现二维码扫码登陆 ## 运行环境 Python 2.7 ## 第三方库 - [Requests][1]: 简单好用,功能强大的Http请求库 - [beautifulsoup4][2]: HTML文档格式化及便签选择器 ## 环境配置 ``` Python pip install requests pip install beautifulsoup4 ``` ## 使用帮助 ``` cmd > python scraper-jd.py -h usage: scraper-jd.py [-h] [-u USERNAME] [-p PASSWORD] [-g GOOD] [-c COUNT] [-w WAIT] [-f] [-s] Simulate to login Jing Dong, and buy sepecified good optional arguments: -h, --help show this help message and exit -u USERNAME, --username USERNAME Jing Dong login user name -p PASSWORD, --password PASSWORD Jing Dong login user password -g GOOD, --good GOOD Jing Dong good ID -c COUNT, --count COUNT The count to buy -w WAIT, --wait WAIT Flush time interval, unit MS -f, --flush Continue flash if good out of stock -s, --submit Submit the order to Jing Dong ``` ## 实例输出 ``` cmd +++++++++++++++++++++++++++++++++++++++++++++++++++++++ Thu Mar 30 17:10:01 2017 > 请打开京东手机客户端,准备扫码登陆: 201 : 二维码未扫描 ,请扫描二维码 201 : 二维码未扫描 ,请扫描二维码 201 : 二维码未扫描 ,请扫描二维码 201 : 二维码未扫描 ,请扫描二维码 202 : 请手机客户端确认登录 200 : BADACIFYhf6fakfHvjiYTlwGzSp4EjFATN3Xw1ePR1hITtw0 登陆成功 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ Thu Mar 30 17:10:28 2017 > 商品详情 编号:3133857 库存:现货 价格:6399.00 名称:Apple iPhone 7 Plus (A1661) 128G 黑色 移动联通电信4G手机 链接:http://cart.jd.com/gate.action?pid=3133857&pcount=1&ptype=1 商品已成功加入购物车! 购买数量:3133857 > 1 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ Thu Mar 30 17:10:30 2017 > 购物车明细 购买 数量 价格 总价 商品 Y 1 6399.00 6399.00 Apple iPhone 7 Plus (A1661) 128G 黑色 移动联通电信4G手机 总数: 1 总额: 6399.00 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ Thu Mar 30 17:10:30 2017 > 订单详情 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ ... ``` ## 注 代码仅供学习之用,京东网页不断变化,代