mac搭建appium环境及python运行代码示例-kb88凯时官网登录

来自:
时间:2024-04-23
阅读:

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

1.安装appium服务端

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

npm install -g appium

2.安装python客户端

pip install appium-python-client

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

3.安装java环境

brew tap adoptopenjdk/openjdk
brew install adoptopenjdk8

配置环境变量

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

brew install --cask android-platform-tools

配置环境变量:

export android_home=/users/xxx/library/android/sdk

其中xxx为用户名。
完成之后,将安卓手机连接到电脑,注意手机的开发者权限之类的全部开启。
然后执行 adb devices,可以显示设备,则安装成功。

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

5.连接测试

根据上面的配置之后,环境基本安装完毕,下面来测试一下,首先启动appium服务端。
命令行执行:appium,出现欢迎界面则没有问题。
主要是测试一下 appium inspector,这个是appium提供的查看手机app元素以及其它功能的桌面软件,可以大大提升开发效率。
下载打开这个软件,远程、端口、路径都使用默认不填即可,主要填一下右下角的 json representation:

'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代码测试

执行d88尊龙官网手机app官网的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()

成功则表示正常连接

返回顶部
顶部
网站地图