Mac搭建appium环境及python运行代码示例

Appium主要是通过调用安卓提供的接口来执行命令的,所以需要安装Java和安卓SDK。

1.安装Appium服务端

appium的服务端是基于node的,直接使用npm(node包管理器)安装即可,比较简单。

shell 复制代码
npm install -g appium

2.安装Python客户端

shell 复制代码
pip install Appium-Python-Client

同样直接使用pip安装即可。

3.安装Java环境

shell 复制代码
brew tap AdoptOpenJDK/openjdk

brew install adoptopenjdk8

配置环境变量

shell 复制代码
JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
 CLASS_PATH="$JAVA_HOME/lib"
 PATH=".$PATH:$JAVA_HOME/bin"
 export PATH=/usr/local/bin:$PATH

4.安装安卓SDK

shell 复制代码
brew install --cask android-platform-tools

配置环境变量:

shell 复制代码
export ANDROID_HOME=/Users/xxx/Library/Android/sdk

其中xxx为用户名。

完成之后,将安卓手机连接到电脑,注意手机的开发者权限之类的全部开启。

然后执行 adb devices,可以显示设备,则安装成功。

其实通过brew安装的软件默认在命令行是可以直接打开不用配置环境变量的,因为brew设置了软链接,但是appium的服务无法读取到,所以上面还是需要配置一下。

5.连接测试

根据上面的配置之后,环境基本安装完毕,下面来测试一下,首先启动appium服务端。

命令行执行:appium,出现欢迎界面则没有问题。

主要是测试一下 Appium Inspector,这个是Appium提供的查看手机app元素以及其它功能的桌面软件,可以大大提升开发效率。

下载打开这个软件,远程主机、端口、路径都使用默认不填即可,主要填一下右下角的 JSON Representation:

json 复制代码
'platformName': 'Android', # 被测手机是安卓 
'automationName' : 'UiAutomator2',
'appPackage': 'tv.danmaku.bili', # 启动APP Package名称 
'appActivity': '.ui.splash.SplashActivity', # 启动Activity名称 
'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True 
'resetKeyboard': True, # 执行完程序恢复原来输入法 
'noReset': True, # 不要重置App 'newCommandTimeout': 6000, 

填上最前面的platformName和automationName就可以,其它都是选配。

6.python代码测试

执行官网的python示例代码:

python 复制代码
import unittest

from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy

capabilities = dict(
    platformName="Android",
    automationName="uiautomator2",
    deviceName="Android",
    appPackage="com.android.settings",
    appActivity=".Settings",
)

appium_server_url = "http://localhost:4723"


class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Remote(
            appium_server_url,
            options=UiAutomator2Options().load_capabilities(capabilities),
        )

    def tearDown(self) -> None:
        if self.driver:
            self.driver.quit()

    def test_find_battery(self) -> None:
        el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="电池"]')
        el.click()


if __name__ == "__main__":
    unittest.main()

成功则表示正常连接

相关推荐
镭封1 天前
Appium配置2024.11.12
appium
几何DDDMm2 天前
Python自动化测试---Appium
开发语言·python·appium
qq_433716953 天前
编写第一个 Appium 测试脚本:从安装到运行!
自动化测试·软件测试·jmeter·ci/cd·职场和发展·appium·jenkins
小码哥说测试6 天前
编写第一个 Appium 测试脚本:从安装到运行!
软件测试·测试工具·职场和发展·单元测试·appium·postman·性能测试
学知识拯救世界8 天前
appium启动 install driver安装驱动
appium
小码哥说测试10 天前
测试分层:减少对全链路回归依赖的探索!
自动化测试·软件测试·人工智能·测试工具·appium·pytest·postman
帅得不敢出门12 天前
Python+Appium+Pytest+Allure自动化测试框架-安装篇
python·appium·自动化·pytest·测试·allure
软件20512 天前
【Arch Linux 上安装 Appium 】
linux·运维·appium
软件20512 天前
【appium 安卓10 QQ发送消息】
android·appium
帅得不敢出门14 天前
Python+Appium+Pytest+Allure自动化测试框架-代码篇
python·appium·自动化·pytest·测试·allure