Python Appium配置的一些坑和经验分享

最近朋友跟我说可能要接一个 App爬虫的的单子,怀着兴奋激动(bu han chan)的心情,我打开CSDN搜索如何配置Python Appium的相关教程,踩了很多的坑,准备和大家一起分享一下。

准备篇

首先我们需要配置Android SDK(iOS没试,因为没有设备),因为我这个人比较的喜欢IDE(lan),所以我直接选择下载一个Android Studio来安装我们的Android SDK。访问Android Studio官网来下载:

Download Android Studio and SDK tools  |  Android Developershttps://developer.android.google.cn/studio/

 下载好后打开Android Studio,找到settings --> system settings --> Android SDK

 

 按照上图配置好SDK保存路径以及安装的版本后,点击Apply按钮安装。

安装好我们的SDK后记得配置一下环境变量(因为Appium会自动读取环境变量以检验JDK和SDK-Tools的安装),因此我们需要创建如下变量:

配置好后打开PowerShell检查一下:

 确认好上述东西可以开始下载Appium驱动了,这里不建议使用1.20版本以上的Appium,因为如何你需要对XML(ui)进行即时的元素查看的话,你需要去独立的安装Appium Inspector(ui检查器),而这个东西是在1.20以下版本是被集成在原生Appium里的,无需单独下载。

Appium github下载链接:https://github.com/appium/appium-desktop/releases/latesticon-default.png?t=LA92https://github.com/appium/appium-desktop/releases/latest

下载好的Appium是安装C盘里的,这个是无法更改的。

打开后的驱动涨这个样子:

 一般情况下我们只使用精简模式就足够了,保留默认配置启动服务器。

启动后的Appium Log长这样:

 好了,到这里准备工作就完成了。

实战篇

对安卓有点了解的小伙伴应该知道:Android的APP基本元素包含Activity和UI XML。那么,如果我去爬虫,我怎么去定位到我想要爬取的元素呢?这里就用到我们之前提到过的Appium Inspector了。

有主意发现上面Log Shell里的一个放大镜吗,那就是我们要用的UI检查器。

点开它,你能看到这样的画面:

 可是这样干启动会话是根本启动不了我们的UI检查器的,它会抛出这样的异常:

这是因为我们没有指定启动配置,那么我们该怎么配置我们的连接呢?

首先点击自动设定按钮,这时Appium会弹出这样的对话框:

 因为我们刚才在启动Appium服务的时候是以localhost来启动的,所以这里Appium自动识别到了。

当然这种情况下还不能启动会话,因为它又会抛出这样的异常:

这是因为你没有指定Appium以哪一种内核类型去连接设备,以及你没有指定设备的名称、动画以及自动化时发生异常时的指令超时等等配置项。

所以我在这里为大家列举了一份启动json:

{
    "platformName": "Android",//平台名称
    "platformVersion": "11",//系统版本
    "deviceName": "pyxis",//设备名称,可以随便写(但这里建议用adb识别的结果
    "unicodeKeyboard": true,//是否启动unicode键盘以进行自动化
    "resetKeyboard": true,//是否重置键盘
    "noReset": true,//这个没太搞懂
    "newCommandTimeout": 6000,//当新指令信号发送到安卓设备时,Appium最大的等到超时为多长时间(以毫秒为单位)
    "automationName" : "UiAutomator2"//指定动画
}

将其复制到我们下面的JSON Representation里并保存:

可以看到Appium已经读取我们的配置项了,这个时候我们就可以启动我们的会话了。

 在创建连接会话时,Appium会要求你安装如下的驱动组件:

 

一个是appium的uiautomator2的测试服务,一个是主服务,切记一定要安装,否则Appium是拿不到数据的。

安装好之后,UI检查器就是如下的样子:

这样我们就可以向Selenium一样来定位我们想要的元素对象了。

讲完了UI部分,我们也需要Activty来对我们的APP进行控制,那么,该怎么操作呢,没错这个时候就需要ADB(Android Debug Bridge)工具了

使用如下的指令可以获取到我们想要的APP锁对应的activity:

adb shell monkey -p package_name -v-v-v 1

可以看到,这里就是我们想要的activity:

 好的,以上与代码相关的部分就介绍完了,接下来讲讲我在配置时遇到的坑。

踩坑篇

1.”Session Not Created“,像这种错误有一种可能是因为你的手机并没有获取到权限,这个时候该怎么办呢?

首先在确保你的手机有开启开发者模式的情况下,以小米手机为例(本人小米CC9),打开开发者模式下的这些设置:

 打开这些设置后以防万一,我们最好重启一下再连接adb。

2."C:\Program Files\Java\jdk-17.0.1" is not xxx,is it installed ?

     这个问题的指向对象就很明显了,是指你的JAVA配置出现了问题,因此你需要检查你的JAVA_HOME是否配置正常。

3.切记不要在pip中安装uiautomator2和weditor!!!

具体是因为什么我也不清楚是为什么,但是实话这么搞它就会报错,因此,千万别装!!!

4."远程主机关闭了访问"?不用看了,这是因为你Appium服务没启动或者掉了。

---------------------------------------------------------------------------------------------------------------------------------好的,以上就是本次Appium配置分享的全部内容了,喜欢或者觉得有用记得给我点个赞,我是Deahost,下期见。

最后附上一个自动刷抖音的脚本送给大家,有需要的可以自行复制运行:

from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
import time
from random import randint
action = TouchAction()

timehold = int(input("请输入浏览时长:"))
swipe_duration = float(input("请输入滑动时长:"))
desired_caps = {
    "platformName": "Android",
    "platformVersion": "11",
    "deviceName": "pyxis",
    "appPackage":"com.ss.android.ugc.aweme",
    "appActivity":".splash.SplashActivity",
    "unicodeKeyboard": True,
    "resetKeyboard": True,
    "noReset": True,   
    "newCommandTimeout": 6000,
    "automationName" : "UiAutomator2"
}

driver = webdriver.Remote("http://localhost:4723/wd/hub",desired_capabilities=desired_caps)

def get_size():
    x = driver.get_window_size()['width']
    y = driver.get_window_size()['height']
    return (x,y)
def swipe(time_hold:int,duration:int) -> None:
    screen = get_size()
    time.sleep(time_hold)
    driver.swipe(screen[0] * 0.5,screen[1] * 0.75,screen[0] * 0.5,screen[1]*0.25,duration)
time.sleep(3)
while True:
    try:
        driver.implicitly_wait(randint(1,3))
        like_button = driver.find_element_by_id("ck8")
        action.tap(like_button,count=2)
        swipe(time_hold=timehold,duration=swipe_duration)
    except Exception as Error:
        print(f"[Error] 不是一个有效短视频,可能是直播,尝试滑动")
        swipe(time_hold=0,duration=swipe_duration)

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Appium Python配置步骤如下: 1. 安Python环境:在官网下载Python包,安完成后,将Python添加到环境变量中。 2. 安pip:pip是Python的包管理工具,可以通过pip安Appium Python客户端库。在命令行中输入以下命令安pip: ``` curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py ``` 3. 安Appium Python客户端库:在命令行中输入以下命令安Appium Python客户端库: ``` pip install Appium-Python-Client ``` 4. 下载安Appium:在官网下载Appium包,安完成后,启动Appium。 5. 编写测试脚本:使用Appium Python客户端库编写测试脚本,连接Appium服务器,启动测试。 以上就是Appium Python配置的步骤,希望对你有帮助。 ### 回答2: Appium是一种流行的自动化测试框架,可以用于测试各种移动应用程序。Python作为一种热门的编程语言,可以与Appium框架无缝集成。在本文中,我们将讨论如何安配置Python用于Appium测试。 安Python: 在安Python之前,您需要确保已安适当的开发环境。在Windows上,您需要安Visual Studio或C++ Build Tools。在macOS上,您需要安Xcode命令行工具。建议安Python 3.x版本,因为这是最新的稳定版本。您可以从官方网站下载Python并按照提示进行安。 安Appium-Python客户端库: 之前安Python的时候需要确认是否安了pip包管理器,否则需要先安pip。可以使用以下命令在终端/命令提示符下安Appium-Python客户端库。 pip install Appium-Python-Client 安Appium: 在安Appium之前,您需要安Node.js。在Windows上,您可以从官方网站下载Windows安程序并按照提示进行安。在macOS上,您可以使用以下命令在终端中安Node.js: brew install node 安完Node.js后,您可以使用以下命令在终端/命令提示符下安Appium: npm install -g appium 配置Appium: 在配置Appium之前,您需要确保您的测试环境与Appium服务器连接成功。您可以使用以下代码片段检查是否连接成功: from appium import webdriver desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '9' desired_caps['deviceName'] = 'Android Emulator' desired_caps['app'] = 'path/to/your/app' driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.quit() 以上是做个小测试,测试环境是否可以与Appium服务器连接。如果测试运行成功,则您已经成功配置Appium测试环境。 在本文中,我们已经讨论了如何安配置Python用于Appium测试。安PythonAppium-Python客户端库和Appium之后,您可以开始编写Appium测试代码。Appium-Python客户端库提供了各种方法,可帮助您构建和运行自动化测试用例。 ### 回答3: Appium是一款常用的移动端自动化测试工具,Python则是一种常用的编程语言,在移动端自动化测试中也有广泛应用。下面将介绍Appium Python的安配置流程,以帮助开发者快速搭建测试环境。 一、安Python 1. 官网下载安包:在Python官网(https://www.python.org/downloads/)上选择适合自己系统的安包进行下载,Windows系统需要注意选择32位或者64位的版本。 2. 安配置:双击安包进行安,并将Python路径添加到系统环境变量中,方便命令行调用。 二、安Appium 1. 安Node.js:Appium依赖于Node.js,因此需要先安Node.js,官网下载安包(https://nodejs.org/en/download/)进行安即可。 2. 安Appium:在命令行中使用npm命令(Node Package Manager)进行Appium,命令如下: ``` npm install -g appium ``` 3. 安Appium-Python客户端库:使用pip安Appium-Python客户端库,命令如下: ``` pip install Appium-Python-Client ``` 三、配置Appium 1. 配置手机:将手机连接至电脑并开启USB调试模式。 2. 配置Appium服务:启动Appium服务,在Appium客户端中选择设备、App路径、Appium版本等,若服务启动成功,则可见Appium的日志信息。 3. 编写Python脚本:设计Appium测试脚本,通过Python调用Appium提供的API实现自动化测试。 以上便是Appium Python的安配置流程,掌握了以上操作,你就可以轻松地开发具有移动端自动化测试功能的Python应用了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Day(AKA Elin)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值