爬虫-本地部署appium

Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用(用来爬取数据也是不错的选择)。

一. 前往官网下载安装

  • 也可以用Docker/npm安装

    二. 配置

    打开Appium -> 点击edit config -> 设置 ANDROID_HOMEJAVA_HOME

    打开Appium

在系统配置中也加上环境变量 ANDROID_HOMEJAVA_HOME

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
不配置会出现的错误信息:
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not find 'zipalign' in PATH. Please set the ANDROID_HOME or ANDROID_SDK_ROOT environment variables to the corect Android SDK root directory path.

1.打开配置文件
open .bash_profile

2.环境变量
# 新增ANDROID_HOME 路径
export ANDROID_HOME=/Users/mecono/Development/sdk
export PATH=$ANDROID_HOME:$PATH
export PATH=$ANDROID_HOME/tools/bin:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/build-tools/28.0.3:$PATH
# 新增JAVA_HOME 路径
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

3.即可生效
source .bash_profile

USB连接手机,并打开手机的开发者模式-调试模式

查看手机端连接ID

1
2
3
4
5
6
输入:
adb devices -l

输出:
List of devices attached
eaafdefb device usb:19922944X product:oscar model:OC105 device:oscar transport_id:2

三. 启动

启动appium

1
2
3
4
5
6
7
[Appium] Welcome to Appium v1.15.1
[Appium] Non-default server args:
[Appium] allowInsecure: {
[Appium] }
[Appium] denyInsecure: {
[Appium] }
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

点击Start Inspector Session

Start

添加启动配置

1
2
3
4
5
6
7
8
9
10
{
//平台
"platformName": "Android",
//已连接的手机
"deviceName": "OC105",
//APP包名
"appPackage": "com.tencent.mm",
//APP入口
"appActivity": ".ui.LauncherUI"
}

添加启动配置

获取APP包名和APP入口的Activity的名称(微信为例)

方式一
1
2
3
4
1.手机上打开微信
2.iTerm执行 adb shell
3.iTerm执行 dumpsys activity | grep mFocusedActivity
4.输出 mFocusedActivity: ActivityRecord{40b68dd u0 com.tencent.mm/ t10}

其中com.tencent.mm为包名,.plugin.account.ui.WelcomeActivity为入口。

!!!注意
如果启动session后提示 java.lang.SecurityException: Permission Denial: starting Intent异常,可能使用入口不对,使用方式二获取入口。

方式二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
执行命令:com.tencent.mm 为微信包名
adb shell monkey -p com.tencent.mm -vvv 1

输出如下:
:Monkey: seed=1576876679454 count=1
:AllowPackage: com.tencent.mm
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
// 0: 15.0%
// 1: 10.0%
// 2: 2.0%
// 3: 15.0%
// 4: -0.0%
// 5: -0.0%
// 6: 25.0%
// 7: 15.0%
// 8: 2.0%
// 9: 2.0%
// 10: 1.0%
// 11: 13.0%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.tencent.mm/.ui.LauncherUI;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mm/.ui.LauncherUI } in package com.tencent.mm
Events injected: 1
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
## Network stats: elapsed time=17ms (0ms mobile, 0ms wifi, 17ms not connected)
// Monkey finished

其中com.tencent.mm为包名,.ui.LauncherUI为入口。

启动session

启动session

其他

1
2
直接启动APP
adb shell monkey -p com.tencent.mm 1
--- 青山不改 绿水长流,日后江湖相见,自当杯酒言欢,咱们就此别过。---

本文标题:爬虫-本地部署appium

文章作者:mecono

发布时间:2019年12月19日 - 14:12

最后更新:2019年12月19日 - 09:12

原始链接:https://mecono.cn/2756738275.html

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-ND 4.0许可协议。转载请注明出处!