iOS手机App爬虫- (1) Mac安装Appium真机运行环境

一、环境准备与工具安装

1. 开发基础环境配置

1.1 Node.js环境
# 安装NodeJs(JavaScript运行时环境,用于运行Appium服务)
nvm install 21
nvm use 21
node --version  # 验证安装
npm -v          # 验证包管理器
1.2 Xcode套件
  • Xcode安装:从App Store下载安装(iOS应用开发必备IDE)
    Xcode安装示意图
  • Xcode Command Line Tools:终端执行安装命令
    xcode-select --install
    
1.3 Java环境
# 安装Java(Appium部分依赖需要Java环境)
brew install java

# 配置环境变量(下面内容添加至/etc/profile)
echo 'JAVA_HOME=/opt/homebrew/opt/openjdk
export JAVA_HOME' | sudo tee -a /etc/profile

# 然后source一下
source /etc/profile

2. 核心测试工具链

2.1 Appium主程序
# 安装Appium(跨平台自动化测试框架)
npm install -g appium
# 查看支持的驱动列表(如下图)
appium driver list

# 安装XCUITest驱动(iOS专用测试驱动)
appium driver install xcuitest

驱动列表示意图

2.2 辅助工具集
# 安装WebDriver客户端库
npm install -g wd

# 安装Appium Doctor(环境检测工具,它检查Appium成功运行的前提条件)
npm install -g appium-doctor

# 安装Carthage(WebDriverAgent依赖管理器)
brew install carthage

# 安装设备管理工具
brew install libimobiledevice   # 设备通信库
brew install ideviceinstaller   # 应用管理工具
brew install ios-deploy         # 应用部署工具

3. 可视化工具

  • Appium Desktop:(可选,未安装状态下可直接使用命令行启动Appium)下载地址(2022年后停止更新)
  • Appium Inspector下载地址(元素定位与调试工具)

二、设备与环境验证

1. 设备信息获取

# 获取设备UDID
idevice_id -l

# 查看设备详细信息
ideviceinfo
ideviceinfo -k DeviceName      # 设备名称
ideviceinfo -k ProductVersion  # iOS版本

# 查看已安装应用列表
ideviceinstaller -l -o list_user

# 验证设备连接
ios-deploy -c

应用列表示意图
设备连接示意图

2. 环境健康检查

appium-doctor --ios

环境检测结果

三、WebDriverAgent编译部署

1. 设备端准备

  • 开启开发者模式:设置 > 隐私与安全性 > 开发者模式(连点开启)
  • 启用UI自动化:开发者选项 > 启用UI自动化

2. 项目配置

# 修改文件所有权(Username修改为自己的appium实际安装路径)
sudo chown -R $(whoami) /Users/{Username}/.appium

# 编辑 WebDriverAgent.xcodeproj 项目(下面2种方式任选其1)
# 1. 命令行快速启动项目
sudo appium driver run xcuitest open-wda
# 2. 手动双击文件 WebDriverAgent.xcodeproj 文件启动
/Users/{Username}/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj

在这里插入图片描述

3. Xcode证书配置

  1. 修改以下目标的签名配置(每一个都要配置!!!):

    • WebDriverAgentRunner
    • WebDriverAgentLib
    • IntegrationApp
  2. 配置要点:

    • 勾选Automatically manage signing

    • Team 一栏选择个人开发者账号(需登录Apple ID)

    • 修改Bundle Identifier(把 Facebook 的内容换成自己的(随便修改,保证唯一即可)
      证书配置示意图

    • 设置目标iOS版本与设备iOS版本匹配
      在这里插入图片描述

    • 修改Scheme Product -> Scheme -> WebDriverAgentRunner
      在这里插入图片描述

    • 修改Destination Product -> Destination -> 选择自己的手机
      在这里插入图片描述

4. 编译与部署

  1. 执行测试编译:Product > Test
  2. 首次编译安装时会遇到需要证书授权的报错,需要在手机上信任证书后再次执行第1步:
    • 设置 > 通用 > VPN与设备管理 > 信任开发者证书
      在这里插入图片描述
      在这里插入图片描述
  3. 验证服务状态:
    • 手机访问localhost:8100/status
      在这里插入图片描述
    • 命令行执行端口映射:
     # 端口映射 (把手机上启动的8100端口服务映射到电脑端)
     iproxy 8100 8100
    
    • 电脑访问localhost:8100/status
      服务状态验证

四、自动化测试执行

1. 启动Appium服务

appium --allow-cors

Appium启动示意图

2. 配置Appium Inspector

在这里插入图片描述

{
  "platformName": "iOS",
  "appium:deviceName": "XXXXX",		//手机名
  "appium:platformVersion": "18.3.1",	//手机iOS系统版本
  "appium:bundleId": "com.tencent.xin",		//要启动的手机app的bundleId
  "appium:automationName": "XCUITest",
  "appium:xcodeOrgId": "XXXXX",		//开发者ID
  "appium:udid": "XXXXXXXX-XXXXXXXXXXXX",		//手机设备ID
  "appium:noReset": true,
  "appium:xcodeSigningId": "iPhone Developer"
}

3. 参数获取方法

参数项获取命令
deviceNameideviceinfo -k DeviceName
platformVersionideviceinfo -k ProductVersion
bundleIdideviceinstaller -l -o list_user
udididevice_id -l
xcodeOrgIdXcode账户设置中查看(如下图,在这个界面下点击那个 Other就能获取了)

组织ID获取示意图

4. 启动测试会话

  • 确保设备处于解锁状态
  • 点击Start Session开始自动化测试

测试会话示意图

五、常见问题排查

  1. 证书信任问题:需在设备端手动信任开发者证书
  2. 端口占用冲突:确保8100端口未被其他程序占用
  3. WDA编译失败:检查Xcode版本与iOS系统版本兼容性
  4. 元素定位失败:使用Appium Inspector验证控件树结构

提示:建议保持iOS设备屏幕常亮(设置 > 显示与亮度 > 自动锁定 > 永不)

### Scrapy 爬虫框架使用教程 Scrapy 是一个用于抓取网站并提取结构化数据的框架,因其灵活性和可扩展性而受到广泛欢迎[^1]。下面提供了一个简单的入门指南: #### 安装 Scrapy 要安装 Scrapy,可以使用 pip 命令: ```bash pip install scrapy ``` #### 创建项目 创建一个新的 Scrapy 项目可以通过命令行完成: ```bash scrapy startproject myproject cd myproject ``` 这会生成一个基础目录结构。 #### 编写 Spider Spiders 是定义如何爬取特定站点(或一组站点)的一组规则。编写一个 spider 文件通常位于 `spiders` 目录下。这里有一个基本的例子: ```python import scrapy class ExampleSpider(scrapy.Spider): name = 'example' allowed_domains = ['example.com'] start_urls = ['http://example.com'] def parse(self, response): title = response.css('title::text').get() yield {'title': title} ``` 此代码片段展示了如何从页面中抽取标题标签的内容。 #### 运行 Spider 保存文件后,在终端执行如下命令启动蜘蛛程序: ```bash scrapy crawl example ``` --- ### Appium 移动端自动化测试框架文档 Appium 支持跨多个平台的应用程序测试,包括 iOS、Android 和混合应用程序[^3]。以下是设置环境及编写的简单 Python 测试案例的方法: #### 设置环境 对于 Android 设备,确保已安装 JDK、ADB 及其他必要的依赖项。接着下载并配置 Appium Server。 #### 初始化 WebDriver 实例 通过 Selenium 的 WebDriver API 来控制移动设备上的应用行为。以下是如何初始化驱动器实例的一个例子: ```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) ``` 这段代码指定了目标操作系统和其他参数,并连接到本地运行的 Appium server 上。 #### 执行操作 一旦有了 driver 对象,就可以调用各种方法模拟用户交互动作了,比如点击按钮、输入文本等。 ```python element = driver.find_element_by_accessibility_id("some id") element.click() input_field = driver.find_element_by_class_name("android.widget.EditText") input_field.send_keys("Hello World!") ``` 以上就是关于这两个工具的基本介绍与快速上手指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值