• python+appium+真机调试


    一、搭建环境:

    可以参考这个大佬的环境搭建:其实主要分为以下几个步骤:【Python+Appium】开展自动化测试(一)appium环境搭建_appium +python_软件测试凡哥的博客-CSDN博客

    1. 安装Python:
      首先,需要在电脑上安装Python。可以从Python官方网站(https://www.python.org)下载最新版本的Python,并按照官方指南进行安装。

    2. 安装Appium和Appium Python客户端库:
      使用Python的包管理工具pip,可以很方便地安装Appium和Appium Python客户端库。打开命令行终端,运行以下命令安装Appium和Appium Python客户端库:

      pip install Appium-Python-Client
    3. 安装Android SDK和配置环境变量:
      为了通过Appium连接和调试Android设备,需要安装Android SDK并配置相关的环境变量。可以从Android官方网站(https://developer.android.com/studio)下载Android Studio,然后根据官方文档进行安装和配置。

    4. 配置Appium服务器:
      需要启动Appium服务器,以便与Android设备进行通信和操作。可以从Appium官方网站(http://appium.io)下载Appium,并根据官方文档进行安装和配置。

    5. 连接Android设备:
      确保Android设备通过USB连接到电脑,并启用开发者模式。在开发者选项中,启用USB调试功能。

    6. 编写和运行Appium测试脚本:
      搭建完成可以使用Python和Appium Python客户端库编写测试脚本,并通过连接的Android设备进行真机调试。搭建Python+Appium真机调试环境:

     二、代码编写:

    1.在Appium中,weditor是一种用于查看和编辑UI元素的工具。它是一个图形用户界面(GUI)工具,可用于在Appium会话期间检查和操作应用程序的UI元素。通过连接到正在运行的Appium服务器,weditor可以提供应用程序的层次结构视图,并允许用户查看和编辑元素的属性、定位策略以及执行一些简单的操作,如点击和滑动。
    2.在终端输入weditor调用weditor用来查找各个元素,用于编写测试py脚本

    使用Appium库来连接并控制手机设备:

    1. '''
    2. 这段代码是使用Appium库来连接并控制手机设备的示例代码。
    3. 首先,代码导入了必要的库,包括time(时间)、appium.webdriver(Appium库)、TouchAction(触摸操作)、MobileBy(移动设备元素定位)、WebDriverWait(等待条件)和expected_conditions(预期条件)。
    4. 然后,定义了一个字典变量desired_caps,其中包含了连接手机设备所需的参数。这些参数包括platformName(平台名称,此处为Android)、platformVersion(平台版本,此处为13)、deviceName(设备名称,此处为SM-G9910)、appPackage(应用程序包名,此处为no.nordicsemi.android.mcp)、appActivity(应用程序启动活动,此处为.MainActivity)、autoGrantPermissions(自动授权权限)和noReset(不重置应用程序状态)。
    5. 最后,使用webdriver.Remote方法连接到Appium服务器,并传入服务器地址(http://localhost:4723/wd/hub)和desired_caps参数,创建一个driver对象。通过driver对象可以执行各种操作,如模拟用户点击、滑动、输入等。
    6. '''
    7. import time
    8. from appium import webdriver
    9. from appium.webdriver.common.touch_action import TouchAction
    10. from appium.webdriver.common.mobileby import MobileBy
    11. from selenium.webdriver.support.ui import WebDriverWait
    12. from selenium.webdriver.support import expected_conditions as EC
    13. desired_caps = {
    14. "platformName": "Android",
    15. "platformVersion": "13",
    16. "deviceName": "SM-G9910",
    17. 'appPackage': ' no.nordicsemi.android.mcp',
    18. 'appActivity': '.MainActivity',
    19. 'autoGrantPermissions': True,
    20. 'noReset': True
    21. }
    22. driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

    3.连接上appium服务器后,接下来就是对手机app的一些控制操作代码(以下为滑动屏幕示例):

    1. # 等待应用程序加载完成
    2. time.sleep(5)
    3. # 获取登录成功后的提示信息
    4. fliter_message = WebDriverWait(driver, 10).until(
    5. EC.presence_of_element_located((MobileBy.ID, "no.nordicsemi.android.mcp:id/filter_header"))).click()
    6. element_fliter_name = WebDriverWait(driver, 10).until(
    7. EC.presence_of_element_located((MobileBy.ID, 'no.nordicsemi.android.mcp:id/only_favorites_switch'))).click()
    8. time.sleep(5)
    9. # 获取屏幕大小
    10. screen_size = driver.get_window_size()
    11. width = screen_size['width']
    12. height = screen_size['height']
    13. # 设置滑动起始点和终点坐标
    14. start_x = width // 2
    15. start_y = height * 3 // 4
    16. end_x = width // 2
    17. end_y = height // 4
    18. # 模拟滑动操作
    19. # while True:
    20. # TouchAction(driver).press(x=start_x, y=start_y).wait(1000).move_to(x=end_x, y=end_y).release().perform()
    21. # time.sleep(10)
    22. # 关闭连接
    23. driver.quit()

    4.调试成功,下班

  • 相关阅读:
    产品经理的秘密武器:提高效率的 6 种软件工具
    [附源码]java毕业设计游戏账号交易平台
    短视频矩阵系统源码开发分享
    c++11新特性篇-委托构造函数和继承构造函数
    【项目设计】网络对战五子棋(上)
    计算圆的周长和面积——python
    2022下半年《软考-系统架构设计师》备考经验分享
    基于JavaSwing开发日程管理万年行事历程序 课程设计 大作业源码
    大数据运维实战第二十八课 大数据平台的硬件规划、网络调优、架构设计、节点规划
    【Linux驱动层】iTOP-RK3568学习之路(二):vscode中设置头文件路径-完成代码自动补全
  • 原文地址:https://blog.csdn.net/LIN3456789/article/details/132870731