zoukankan      html  css  js  c++  java
  • APPium 环境配置

    Appium 作为移动端自动化测试工具在业界非常流行,特别是在当前移动互联网背景下,很多公司基于此框架来开展自动化测试。但 appium 的环境配置相对 selenium 来说复杂的多,让很多同学望而生畏。本文介绍 appium + python 基于windows 平台来搭建环境。

    环境准备

    • jdk1.8
    • node
    • Appium
    • android-sdk
    • python 3.7
    • Appium-Python-Client

    1、安装 jdk,配置环境变量下载地址

    2、安装 node.js ,下载地址

    3、安装 appium,方式一:直接下载软件安装;方式二:npm install -g appium

    4、安装 android-sdk,下载地址

    下载解压后运行 SDK Manager.exe

    下载 build-tools 工具

    环境变量

    新增系统变量名 ANDROID_HOME ,变量值:D:android-sdk-windows (android-sdk 主目录)

    系统变量 Path 添加 adb 和 aapt 变量值。

    adb 变量值:D:android-sdk-windowsplatform-tools

    aapt 变量值:D:android-sdk-windowsuild-tools29.0.2

    5、Python 安装

    6、Appium-Python-Client 安装

    pip3 install Appium-Python-Client
    

    启动 Appium

    点击启动服务

    {
      "platformName": "Android",
      "platformVersion": "5.1.1",
      "deviceName": "huawei VOG-AL10",
      "appPackage": "com.xingin.xhs",
      "appActivity": "com.xingin.xhs.activity.SplashActivity"
    }
    

    获取包名 后面是apk的位置

    > aapt dump badging C:UsersCoolinDesktopxhs.apk
    

    往下面找到 launcherActivity

    然后 start session 就OK了


    class Xhs_app_crawl:
    
        def __init__(self, ) -> None:
            self.desc={}
            self.desc['deviceName']='127.0.0.1:62001'#手机设备名称,adb devices
            self.desc['platformVersion']='5.1.1'#手机版本,在手机中:设置--关于手机
            self.desc['platformName']='Android' #手机类型,ios或android
            #输入命令,获取app信息:aapt dump badging C:Users83473Desktopmobileqq_android.apk
            self.desc['appPackage']='com.xingin.xhs'#包名
            self.desc['appActivity']='com.xingin.xhs.activity.SplashActivity'#启动入口
            self.desc["unicodeKeyboard"] = "True"#appium提供的一种输入法,可以传中文。测试时直接用这个输入法
            self.desc["resetKeyboard"] = "True"#程序结束时重置原来的输入法
            self.desc["noReset"] = "True"#不初始化手机app信息(类似不清除缓存)
    
            self.driver=webdriver.Remote('127.0.0.1:4723/wd/hub',self.desc)#访问服务接口,并启动手机app。url参数是当appium启动后,默认访问服务地址和接口
    
            self.get_local_xhs_data = Get_sky_data()
            self.xhs_store = Xhs_store()
            self.headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
                'Authorization': asyncio.run(Login.skytoken()) ,
                'Content-Type': 'application/json;charset=UTF-8',
            }
            self.count = 0
            self.redis_api = Redisapi(4)
            self.redis_api5 = Redisapi(5)
    
    
        async def get_local_data(self):
            """
            # 获取需要爬取的本地数据
            """
            name_list = []
            detail_dic = {}
            all_data = await self.get_local_xhs_data.asyncio_get_media_platform_all_kol_info(XiaoHongShu_MEDIA_PLATFORM_ID)
            for kol in all_data:
                name = kol['accountName']
                kol_id = kol['accountId']
                name_list.append({kol_id: name})
                detail_dic[kol_id] = kol
                # time.sleep(4)
            return name_list, detail_dic
    
        def handler(self):
            """
            # appium 操作手机
            """
            self.captcha()
            self.__try(lambda: self.driver.find_element_by_id("com.xingin.xhs:id/d6n").click(), '已跳过广告') 
    

  • 相关阅读:
    java学习笔记(12) —— Struts2 通过 xml /json 实现简单的业务处理
    java学习笔记(11) —— Struts2与Spring的整合
    java学习笔记(10) —— ActionContext、ServletActionContext、ServletRequestAware用法
    PLY调试笔记
    头条暑期训练营往期题目及个人答案
    OpenStack创建网络和虚拟机、dhcp设备、虚拟路由器、虚拟机访问外网原理分析
    训练模型千万条,节省运存第一条
    编译器
    贝叶斯调参原理总结
    CNN原理+超参数优化
  • 原文地址:https://www.cnblogs.com/kai-/p/14119532.html
Copyright © 2011-2022 走看看