经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
Mac搭建appium环境及python运行代码示例
来源:cnblogs  作者:程序员李林  时间:2024/4/23 10:06:12  对本文有异议

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

1.安装Appium服务端

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

  1. npm install -g appium

2.安装Python客户端

  1. pip install Appium-Python-Client

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

3.安装Java环境

  1. brew tap AdoptOpenJDK/openjdk
  2. brew install adoptopenjdk8

配置环境变量

  1. JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
  2. CLASS_PATH="$JAVA_HOME/lib"
  3. PATH=".$PATH:$JAVA_HOME/bin"
  4. export PATH=/usr/local/bin:$PATH

4.安装安卓SDK

  1. brew install --cask android-platform-tools

配置环境变量:

  1. export ANDROID_HOME=/Users/xxx/Library/Android/sdk

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

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

5.连接测试

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

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

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

6.python代码测试

执行官网的python示例代码:

  1. import unittest
  2. from appium import webdriver
  3. from appium.options.android import UiAutomator2Options
  4. from appium.webdriver.common.appiumby import AppiumBy
  5. capabilities = dict(
  6. platformName="Android",
  7. automationName="uiautomator2",
  8. deviceName="Android",
  9. appPackage="com.android.settings",
  10. appActivity=".Settings",
  11. )
  12. appium_server_url = "http://localhost:4723"
  13. class TestAppium(unittest.TestCase):
  14. def setUp(self) -> None:
  15. self.driver = webdriver.Remote(
  16. appium_server_url,
  17. options=UiAutomator2Options().load_capabilities(capabilities),
  18. )
  19. def tearDown(self) -> None:
  20. if self.driver:
  21. self.driver.quit()
  22. def test_find_battery(self) -> None:
  23. el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="电池"]')
  24. el.click()
  25. if __name__ == "__main__":
  26. unittest.main()

成功则表示正常连接

原文链接:https://www.cnblogs.com/easy1996/p/18151419

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号