当前位置:   article > 正文

python+appium

python+appium

目录

一、环境搭建

1、安装JDK(1.8.0)并配置环境

2、安装Andorid SDK(建议使用29版本)

3、安装NodeJs

4、安装appium

5、安装appium-python-client

二、连接

1、adb连接设备

2、开启Appium Server

3、 python脚本

三、API Documentation - Appium

1、app

2、元素

3、交互


一、环境搭建

1、安装JDK(1.8.0)并配置环境

 1、下载

        下载JDK文件,点击运行安装
 2、配置环境变量
     (1)新建一个名为JAVA_HOME的环境变量,变量值为JDK的安装路径
     (2)将%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin添加到path中
     (3)新建一个名为classpath的环境变量,变量值为:
          %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
 3、验证

        cmd窗口中输入java -version

2、安装Andorid SDK(建议使用29版本)

1、下载

        下载Andorid SDK文件,点击进行安装
2、安装相关工具(默认前三个)

        双击Andorid SDK Manager,选择前三个tools点击安装

3、配置环境变量
   (1)新建ANDROID_HOME变量,变量值为Andorid SDK的路径
   (2)将%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools添加到path中
4、验证

        cmd窗口中输入adb,出现版本号则说明安装成功

3、安装NodeJs

1、下载

        下载NodeJS文件,点击进行安装
2、配置环境变量

        自动

3、验证

        cmd窗口中输入node -v,npm -v

4、安装appium

1、下载

        下载appium-desktop文件,点击进行安装
2、配置环境变量

5、安装appium-python-client

1、pip install -U appium-python-client

二、连接

1、adb连接设备

1、打开手机或模拟器开发者模式

2、win+r打开cmd

3、adb connect 127.0.0.1:21503

4、adb devices -l

5、adb shell dumpsys window |findstr mCurrent

2、开启Appium Server

{
  "deviceName": "127.0.0.1:62001",
  "appPackage": "com.android.launcher3",
  "appActivity": "com.android.launcher3.launcher3.Launcher",
  "platformName": "Android",
  "noReset": true
}

3、 python脚本

  1. from appium import webdriver
  2. from appium.webdriver.common.appiumby import AppiumBy
  3. from appium.webdriver.common.touch_action import TouchAction
  4. import time
  5. desired_caps = {
  6. "deviceName": "127.0.0.1:62001",
  7. "appPackage": "com.hypergryph.arknights",
  8. "appActivity": "com.u8.sdk.U8UnityContext",
  9. "platformName": "Android",
  10. "noReset": True,
  11. "newCommandTimeout": 600
  12. }
  13. driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
  14. actions = TouchAction(driver)
  15. # start、开始唤醒、取得神经连接
  16. time.sleep(30)
  17. actions.tap(x=635, y=515).perform()
  18. time.sleep(15)
  19. actions.tap(x=635, y=515).perform()
  20. time.sleep(40)
  21. # 签到
  22. actions.tap(x=591, y=591).perform()
  23. time.sleep(5)
  24. # 关闭签到
  25. actions.tap(x=1216, y=79).perform()
  26. time.sleep(5)
  27. # 关闭公告
  28. actions.tap(x=1236, y=74).perform()
  29. time.sleep(5)
  30. # 点击当前
  31. actions.tap(x=929, y=220).perform()
  32. time.sleep(5)
  33. # 点击前往上一次作战
  34. actions.tap(x=1137, y=602).perform()
  35. time.sleep(10)
  36. # 循环刷取关卡
  37. for i in range(2):
  38. actions.tap(x=1144, y=671).perform()
  39. time.sleep(10)
  40. actions.tap(x=1103, y=604).perform()
  41. time.sleep(180)
  42. actions.tap(x=1137, y=602).perform()
  43. time.sleep(15)
  44. driver.quit()

三、API Documentation - Appium

1、app

  1. # 安装
  2. driver.install_app('/Users/johndoe/path/to/app.apk')
  3. # 是否已安装
  4. driver.is_app_installed('com.example.AppName')
  5. # 启动
  6. driver.launch_app()
  7. # 后台应用程序
  8. driver.background_app(10)
  9. # 关闭应用程序
  10. driver.close_app()
  11. # 重启应用程序
  12. driver.reset()
  13. # 删除应用程序
  14. driver.remove_app('com.example.AppName')
  15. # 激活应用程序
  16. driver.activate_app('com.apple.Preferences')
  17. driver.activate_app('io.appium.android.apis')
  18. # 终止程序
  19. driver.terminate_app('com.apple.Preferences')
  20. driver.terminate_app('io.appium.android.apis')
  21. # 获取应用状态
  22. driver.query_app_state('com.apple.Preferences')
  23. driver.query_app_state('io.appium.android.apis')
  24. # 得到应用的字符串
  25. appStrings = driver.app_strings("en", "/path/to/file")
  26. # 结束测试覆盖率
  27. driver.end_test_coverage("Intent", "/path")

2、元素

  1. # 查找元素
  2. driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="SomeAccessibilityID")
  3. driver.find_elements(AppiumBy.ACCESSIBILITY_ID,'SomeAccessibilityID')
  4. # 行为
  5. el = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='SomeId')
  6. el.click()
  7. el.send_keys('Hello world!')
  8. el.clear()
  9. # 元素
  10. el = self.driver.find_element_by_accessibility_id('SomeAccessibilityID')
  11. el.text
  12. el.tag_name
  13. el.get_attribute('content-desc')
  14. el.is_selected()
  15. el.is_enabled()
  16. el.is_displayed()
  17. el.location
  18. el.size

3、交互

  1. from appium.webdriver.common.touch_action import TouchAction
  2. # ...
  3. actions = TouchAction(driver)
  4. # 单次点击
  5. actions.tap(element)
  6. # 双击
  7. actions.double_tap(element)
  8. # 移动
  9. actions.tap_and_hold(element)
  10. actions.move_to(element, 50, 50)
  11. # 向下触摸
  12. actions.tap_and_hold(element)
  13. actions.move(50, 50)
  14. # 向上触摸
  15. actions.tap_and_hold(element)
  16. actions.release(50, 50)
  17. # 长按
  18. actions.long_press(element)
  19. # 滚动
  20. actions.scroll_from_element(element, 10, 100)
  21. actions.scroll(10, 100)
  22. # 使用手指运动事件在触摸屏上轻拂
  23. actions.flick_element(element, 1, 10, 10)
  24. # 触摸执行
  25. actions.tap_and_hold(20, 20)
  26. actions.move_to(10, 100)
  27. actions.release()
  28. actions.perform()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/212988
推荐阅读
相关标签
  

闽ICP备14008679号