python中appium1.22.3-4安装环境

本文详细介绍了如何在Python环境中安装Appium,包括JDK、Android SDK、Node.js、Appium Server、Appium Inspector的安装步骤,并提到了pip安装Appium-Python-Client以及如何进行自动化测试脚本的录制和执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Appium是一个用于自动化移动应用程序的开源工具,支持iOS和Android平台。通过Appium,您可以编写测试脚本来自动化测试您的移动应用程序,包括UI测试、功能测试等。

  1. JDK安装:JDK(Java Development Kit)是Java开发环境的基础,Appium的一些组件可能需要Java来运行,因此需要安装JDK。

  2. Android SDK安装:Android SDK(Software Development Kit)是Android应用开发的工具集,Appium用于与Android设备进行通信和操作,因此需要安装Android SDK。

  3. Node.js安装:Appium是基于Node.js开发的,因此需要安装Node.js来运行Appium。

  4. Appium Server安装:Appium Server是Appium的核心组件,它负责管理设备连接、执行测试脚本等功能,需要安装Appium Server来启动Appium测试服务。

  5. Appium Inspector安装:Appium Inspector是一个图形化工具,用于检查应用程序的UI元素和生成自动化测试脚本,安装Appium Inspector可以帮助您更方便地编写测试脚本。

  6. pip install Appium-Python-Client安装:这是Appium Python客户端库,用于编写Python脚本来与Appium Server通信,执行测试操作等。

一、JDK安装

     网上其他博客有很多安装教程

二、Android SDK 安装

方法一:AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载

767c4de513c1bd7b84dcd8c3a9432c35.png

下载完成后,解压后点击SDK  Manager.exe执行程序

ef17cefa14f2f6891fef12ac22478015.png

选择安装内容,记得下一步点击同意,我这里就不再进行安装了。

29591d77c1a6b77ebb66c233f68dfb72.png

若安装失败,记得多安装几次。

方法二:通过Android Studio进行安装

8bfadabdfb817e22ae556e617f26b104.png

a27d3e37076bcd1b3ef0011704ee86ef.png

21eec7f9aaa3e425992c56da1e2c006b.png

打开系统目录看见,如下图:

8703044f0a059cfb520d45b8f18342bb.png

配置环境:

变量名:ANDROID_HOME

4cfce8aaef85e8b9f19e195d69b60398.png

变量名:Path

7bd2bc995a249ed8545d106202f9f186.png

验证环境,打开cmd,输入adb

e7340ac61ac1f2862241716b9c05d2a8.png

三、node.js安装

地址:Node.js

f97131179f9f63e85d34698d3cfa47de.png

下载完成后,指定安装目录,点击下一步安装,我这里已安装就不进行安装了。

配置环境

变量名:path

3c0c0ce2a70e94dba45cc2d28530e0ce.png

验证环境,cmd输入node -v。如图:

96363a344680d2a6cd525b803999012f.png

四、Appium Server安装

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

e0a9d3655c6851c78ca96e1834a545fc.png

或下载exe程序都行。安装完成后或下载完成后,如图:

e608582df890efa78d8f6d75f3536470.png

启动服务。如图(保持默认不变):

25de18422c5bebfa248cb6518ea32b38.png

编辑设置。如图:

6930551310ac1760b91cce60200aacfb.png

这里会从系统环境变量中自动引用的。如图:

f72f4b98590f53dff647e57ac030a030.png

注意:若没有引用出来,确认在标记下系统环境变量中确定是无误的,可手动进行添加。一定注意是要一致的。

启动服务:

35837d73d5e894b720af7a546bfc3d5c.png

ce7ef7db233a43777a65da59901ea1a2.png

五、Appium Inspector安装

地址:Releases · appium/appium-inspector · GitHub (若多次访问加载不出来,最直接的就是vpn代理)。如图:

98944d3cd73f3e7e1c601d5ae8061e2a.png

解压后,启动客户端。如图:

303f1ec995e2d8aa8cfe58e0b0d39166.png

配置填写。如图:

9f2d00d68a6ef541d85006f86a590206.png

这个是提前写好的json表达式,是appium启动服务自动拉起APP服务的关键一步。如图:

5fd59dace6ed45b43bee68da6f86b086.png

{
  "platformName": "Android",
  "platformVersion": "9",
  "deviceName": "92HX1WTMP",
  "appPackage": "com.matthew.yuemiao",
  "appActivity": "com.matthew.yuemiao.ui.activity.WelcomeActivity"
}

 注意:若报错session会话超时,建议修改json如下:

{
  "platformName": "Android",
  "platformVersion": "9",
  "deviceName": "92HX1WTMP",
  "app":"F:/test/xq.apk", 
  "appPackage": "com.matthew.yuemiao",
  "appActivity": "com.matthew.yuemiao.ui.activity.WelcomeActivity"
}

点击Start Session,会进入appium模拟器控制界面。如图:

66f929c018b8e0a28d29e0d81673ab97.png

点击图标,代表select elements,这比安卓自带uiautomatorviewer.bat方便许多。

a5ec6b1a7e32d46f486d04a0e4c8d1d9.png

这个界面中的功能都挺简单,可以点击试用都应该知道怎么操作。

六、脚本录制

1.录制脚本前,需先点击录制图标,并选择录像标签,并选择录制脚本语言。如图:

c98c89afbe9d151a0c49fb992c4ba4c9.png

2.在source下,可进行模拟器模拟点击、输入操作。如图:

8ca79943226831f5d7d4fc70779c493a.png

3.点击录制标签下,可看见录制的代码。如图:

d8fd11d1d22180bddf3b927d3dd69b09.png4.点击样本代码。如图:

a178ec9572b9d31edf0b1dd286cd0452.png

完整的python 脚本已录制完成。当然该代码是未构造方法很简陋。当然我们肯定是通过pycharm来构造appium自动化脚本。

七、pip install Appium-Python-Client安装

cmd执行该命令,前提是你正确安装了python环境。

# 下载慢,则开启代理vpn试试
方法一:pip install Appium-Python-Clien 
# 清华
方法二:pip install Appium-Python-Clien -i https://pypi.tuna.tsinghua.edu.cn/simple
# 豆瓣
方法三:pip install Appium-Python-Clien -i http://pypi.douban.com/simple/

八、appium自动化测试demo

该代码执行逻辑安装apk-启动apk-隐私政策弹窗-提取隐私政策文本-返回-点击同意按钮-进入登录页输入手机号,验证码(需手动介入)。

import time
import re
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from appium.options.common.base import AppiumOptions
from appium.webdriver.common.touch_action import TouchAction
import xml.etree.ElementTree as ET

class AppiumTest:
    # 定义输出文件路径
    OUTPUT_FILE_PATH = "F:/automation/output.txt"
    # 定义匹配模式
    PATTERN = r'隐私政策'
    # 驱动选项
    DRIVER_OPTIONS = {
        "platformName": "Android",
        "appium:platformVersion": "9",
        "appium:deviceName": "92HX1WTMP",
        "appium:app": "F:/testt/ym.apk",
        "appium:appPackage": "com.matthew.yuemiao",
        "appium:appActivity": "com.matthew.yuemiao.ui.activity.WelcomeActivity",
        "appium:ensureWebviewsHavePages": True,
        "appium:nativeWebScreenshot": True,
        "appium:newCommandTimeout": 3600,
        "appium:connectHardwareKeyboard": True
    }

    def __init__(self):
        # 初始化驱动
        self.driver = self.init_driver()

    def init_driver(self):
        # 初始化驱动函数
        options = AppiumOptions()
        options.load_capabilities(self.DRIVER_OPTIONS)
        return webdriver.Remote("http://127.0.0.1:4723/wd/hub", options=options)

    def find_and_click_element(self, by, value):
        # 查找并点击元素
        element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((by, value)))
        element.click()

    def find_and_input_element(self, by, value, input_text):
        # 查找并输入文本
        element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((by, value)))
        element.send_keys(input_text)

    def search_and_click_privacy_policy(self):
        # 搜索并点击隐私政策
        if re.search(self.PATTERN, self.driver.page_source):
            print("找到包含'隐私政策'文本的元素")
            # 点击坐标
            TouchAction(self.driver).tap(x=841, y=935).perform()
            time.sleep(3)
            self.parse_and_write_to_file(self.driver.page_source)
        else:
            print("未找到包含'隐私政策'文本的元素")

    def parse_and_write_to_file(self, page_source):
        # 解析并写入文件
        root = ET.fromstring(page_source)
        with open(self.OUTPUT_FILE_PATH, 'w', encoding="utf-8") as output_file:
            for node in root.iter():
                if 'text' in node.attrib:
                    output_file.write(node.attrib['text'].replace('\u00A0', ' ') + "\n")

    def run_test(self):
        # 运行测试
        self.search_and_click_privacy_policy()
        self.driver.back()
        self.find_and_click_element(AppiumBy.ID, "com.matthew.yuemiao:id/ok")
        self.find_and_click_element(AppiumBy.ID, "com.matthew.yuemiao:id/checkBox")
        self.find_and_input_element(AppiumBy.XPATH, "//android.widget.EditText[@resource-id=\"com.matthew.yuemiao:id/custom_editText\" and @text=\"请输入手机号\"]", "15982391396")
        self.driver.quit()

if __name__ == "__main__":
    AppiumTest().run_test()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值