python-appium-fiddler 搭建环境实现无障碍APP爬虫

本文介绍了如何搭建appium环境,包括安装jdk、Android Studio和配置环境变量。接着,详细讲解了如何在夜神模拟器上连接appium,以及如何通过Fiddler设置实现抓包并自动储存请求信息,简化APP爬虫的工作流程。通过appium录制操作生成Python代码,结合Fiddler进行高效爬取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ps:在配置抓包环境之前,我们需要将用到的软件下载下来:
fiddler官方下载地址
Github appium下载地址
jdk官方下载地址
Android studio官方下载地址

一、搭建appium环境

1、安装jdk,直接下一步下一步的点击就可以,最好使用默认路径,在安装完成之后并配置环境变量。这个网上有很多教程,大家直接在网上搜索就可以。
2、安装Android studio,在菜鸟教程里有安装教程,大家可以直接打开链接:
https://www.runoob.com/android/android-studio-install.html
需要注意的是我们在安装Android studio时,到这一步我们可以只选择安装Android SDK,,其他两个可以不选择安装,因为我是使用的夜神模拟器来模拟真机,并没有使用studio自带的安卓模拟器
ps:我们需要将SDK的下的两个目录添加到环境变量中,其中有
…\SDK\platform-tools …\SDK\tools

3、接下来我们要安装appium,这个教程大家也上网搜吧,就是最后在安装完成之后我们需要将
之前我们安装好的java路径和SDK路径配置到appium上
java路径与SDK路径配置
经历这些之后我们的大概环境就配置好了,接下来我们可以选择使用真机来连接或模拟器来连接进行测试。

二、连接测试

1、我使用的是夜神模拟器,在连接之前我们需要将夜神模拟器进行一些配置,之前我们在安装Android studio安装了SDK,那么接下来我们就需要找到sdk/platform-tools文件夹中的adb.exe
在这里插入图片描述
讲这个文件复制到夜神模拟器的安装根目录下bin文件夹中,因为这个文件夹下有同名的文件,我们需要对这个文件进行覆盖,并且我们要将这个adb.exe文件再次复制,将其改名为 nox_adb.exe 再同样的覆盖掉夜神模拟器的bin目录下的同名文件。
在这里插入图片描述在这里插入图片描述
将其覆盖完成之后,我们的准备工作就完成了
2、首先打开夜神模拟器
接下来我们打开cmd黑窗口,cd到夜夜神模拟器的bin文件夹下,也可以直接打开这个文件夹,在其地址栏中输入cmd
因为之前我们已经将bin目录下的adb文件以及nox_adb文件覆盖,所以这里我们可以直接使用nox_adb.exe文件直接对appium进行连接,
输入:nox_adb.exe connect 127.0.0.1:62001
adb devices
在这里插入图片描述
当你的窗口中出现这两条命令就代表已经成功的将夜神模拟器连接到appium中,接下来我们还需要获得两个APP中的参数:
在cmd窗口中输入:aapt dump badging 这是app目录
记录package:name 显示的apk名
并记录activity name 显示的交互名称
3、接下来启动appium服务器
在这里插入图片描述
可以直接使用appium中的默认配置,无需更改启动服务器之后,我们可以直接使用appium的会话窗口进行测试连接,看看我们的配置是否可以连接到模拟器
在这里插入图片描述

### 关于 Appium 是否依赖无障碍服务 Appium 是一种用于移动应用自动化的开源工具,支持 iOS Android 平台上的原生、混合以及 Web 应用的测试[^1]。它并不完全依赖于系统的无障碍服务来实现其功能。 #### 无障碍服务的作用 在 Android 上,某些自动化框架可能会利用设备的无障碍服务(Accessibility Service),以便捕获屏幕事件或模拟用户交互行为。然而,Appium 的核心机制并非基于无障碍服务,而是通过与底层平台集成的技术实现自动化控制: - **对于 Android**,Appium 主要依靠 UI Automator Espresso 等技术来进行界面元素的操作验证[^3]。这些技术允许 Appium 直接与应用程序的视图层次结构交互,而无需借助无障碍服务。 - **对于 iOS**,Appium 使用 XCUITest 框架与目标应用通信,从而完成各种操作任务。这种模式同样不涉及无障碍服务的概念。 尽管如此,在特定场景下,如果开发者希望监控应用内部的行为或者抓取网络请求数据,则可能间接引入无障碍特性作为辅助手段之一。例如,在构建自定义爬虫项目时,可以结合 Fiddler 工具监听 HTTP 流量,并配合 Appium 执行一系列动作触发所需接口调用[^4]。但这属于扩展用途而非默认配置下的必要条件。 综上所述,标准意义上的 Appium 运行不需要启用系统级的无障碍选项即可正常工作;只有当面对特殊需求时才有可能关联到此类特性。 ```python from appium import webdriver desired_caps = { 'platformName': 'Android', 'deviceName': 'emulator-5554', 'appPackage': 'com.example.app', 'appActivity': '.MainActivity' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) element = driver.find_element_by_id("button_id") if element.is_displayed(): element.click() ``` 此代码片段展示了如何设置一个基本的 Appium 客户端连接至本地服务器实例,并定位点击按钮的动作,整个过程未涉及到任何关于无障碍设定的部分[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值