• Python3+Appium安装使用教程


    一、安装

    我们知道selenium是桌面浏览器自动化操作工具(Web Browser Automation)

    appium是继承selenium自动化思想旨在使手机app操作也能自动化的工具(Mobile App Automation Made Awesome)。

    appium可以通过Desktop App和npm两种方式安装。Desktop App类似于selenium IDE提供一个图形界面式操作工具;npm类似于selenium就只能使用命令行。

    如果对appium还不太熟悉,推荐使用Desktop App安装,这样一些操作我们可以使用Desktop App来输出代码,写代码时就有个参考。

    1.1 安装Android SDK

    要想操作安卓手机需要Android SDK,所以在安装appium之前先安装Android SDK。

    推荐直接安装Android  Studio然后使用Android Studio安装SDK(太慢可通过图中HTTP Proxy设置代理)。

    菜单----Tools----SDK Manager,钩选自己要安装的版本点击Apply进行下载即可。

    Android SDK安装完成后,新建ANDROID_HOME环境变量,值为上图Android SDK Location的目录(我这里是“D:LanguageASDK”)

    1.2 通过Desktop App安装(推荐)

    下载地址:https://github.com/appium/appium-desktop/releases

    选择操作系统对应版本下载,Windows直接双击安装即可。

    1.3 通过npm安装

    1.3.1 安装nodejs

    appium本质是一个nodejs库所以要先安装nodejs,然后使用npm安装。

    nodejs下载地址:https://nodejs.org/zh-cn/download/

    下载zip包解压到自己想放的目录,然后把该目录加入Path环境变量即可。

    1.3.2 安装appium

    npm install -g appium

     安装appium的过程中安装chromedriver时会连接google网站上去(报错RequestError: Error: connect ETIMEDOUT 216.58.220.208:443),所以可能你需要参考以下命令设置一下npm代理

    # 设置代理
    npm config set proxy http://127.0.0.1:1080
    npm config set https-proxy http://127.0.0.1:1080
    
    # 如果代理需要用户名密码
    npm config set proxy http://username:password@127.0.0.1:1080
    npm config set https-proxy http://username:password@127.0.0.1:1080
    
    # 注册npm仓库
    npm config set registry https://registry.npmjs.org
    
    # 查看当前配置项
    npm config get
    npm config get proxy
    # 删除代理配置 npm config delete proxy npm config delete https-proxy

    配置本质上会存放到“C:Users你的用户名.npmrc”内,所以也可以直接修改该文件。

    1.3.3 使用appinum-doctor确认环境配置无误

    npm install -g appium-doctor
    appium-doctor --android

     二、手机连接appium

    2.1 启动appium服务

    如果是通过npm安装,appium会被安装到nodejs目录下,直接使用appium命令启动即可

    我这里使用Desktop App方式安装,安装完成后双击桌面上的图标界面如下:

    我们使用默认配置都不修改,直接点击“Start Server”按钮启动

    2.2 手机使用数据线连接电脑

    使用数据线把手机连接到开启appium的电脑,开启usb调试功能。可使用adb命令列出设备确保连接成功

    adb devices -l

    三、 使用示例

    下边以python3+appium打开微信并登录进行演示。python操作appium是通过向appnium的监听端口发报文实现的,所以python不用安装什么appium库。

    3.1 Desktop App打开微信并登录

    添加以下四项值,完后点击“Start Session”。

    platformName---设备平台。填Android或IOS

    deviceName----设备名。按上边adb查出的设备名填写即可

    appPackage----要启动的app的包名。微信是"com.tencent.mm"

    appActivity----要启动的界面。微信启动界面是".ui.LauncherUI"

    {
      "platformName": "Android",
      "deviceName": "HWEVA",
      "appPackage": "com.tencent.mm",
      "appActivity": ".ui.LauncherUI"
    }

    选择xml控件,对应部份就会高亮显示。

    点击开始录制,然后在该appium界面上操作(注意不是自己直接在手机上操作),操作过程就会被记录下来然后可输出该过程对应的python代码

     

    操作过程就会被记录下来,在Recorder下拉选择语言即可输出操作对应的代码

    3.2 全代码自动化登录实现

    Desktop App已给出界面内操作的代码,全代码自动化主要的其实只是打开该界面的代码。

    首先我们先安装两个依赖库

    pip install Appium-Python-Client Selenium

    代码补全如下,Appium-Python-Client继承自Selenium所以使用方法和selenium是很类似的,更多api操作见:https://github.com/appium/python-client

    from appium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # appium服务监听地址
    server='http://localhost:4723/wd/hub'
    # app启动参数
    desired_caps={
      "platformName": "Android",
      "deviceName": "HWEVA",
      "appPackage": "com.tencent.mm",
      "appActivity": ".ui.LauncherUI"
    }
    
    # 驱动
    driver = webdriver.Remote(server,desired_caps)
    wait = WebDriverWait(driver,30)
    # 获取登录按钮
    login_btn = wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/drp")))
    # 点击登录按钮
    login_btn.click()
    # 获取手机号文本框
    phone_text = wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/ji")))
    # 填写手机号文本框
    phone_text.send_keys("18888888888")

    参考:

    https://blog.csdn.net/yanzi1225627/article/details/80247758

    崔庆才《Python3网络爬虫开发实战》

  • 相关阅读:
    AJAX的使用
    django.template.exceptions.TemplateDoesNotExist: login.html报错
    cookie、session
    关于zipfile解压出现的字符编码问题
    使用jquery清空input 文本框中的内容
    DVWA SQL-injection 附python脚本
    关于itchat用法的一篇博文
    记录两个python itchat的用法博客网址
    pyinstaller 打包.exe文件记录遇到的问题
    用python编写的excel拆分小工具
  • 原文地址:https://www.cnblogs.com/lsdb/p/10108165.html
Copyright © 2020-2023  润新知