一、搭建环境:
可以参考这个大佬的环境搭建:其实主要分为以下几个步骤:【Python+Appium】开展自动化测试(一)appium环境搭建_appium +python_软件测试凡哥的博客-优快云博客
-
安装Python:
首先,需要在电脑上安装Python。可以从Python官方网站(https://www.python.org)下载最新版本的Python,并按照官方指南进行安装。 -
安装Appium和Appium Python客户端库:
使用Python的包管理工具pip,可以很方便地安装Appium和Appium Python客户端库。打开命令行终端,运行以下命令安装Appium和Appium Python客户端库:pip install Appium-Python-Client
-
安装Android SDK和配置环境变量:
为了通过Appium连接和调试Android设备,需要安装Android SDK并配置相关的环境变量。可以从Android官方网站(https://developer.android.com/studio)下载Android Studio,然后根据官方文档进行安装和配置。 -
配置Appium服务器:
需要启动Appium服务器,以便与Android设备进行通信和操作。可以从Appium官方网站(http://appium.io)下载Appium,并根据官方文档进行安装和配置。 -
连接Android设备:
确保Android设备通过USB连接到电脑,并启用开发者模式。在开发者选项中,启用USB调试功能。 -
编写和运行Appium测试脚本:
搭建完成可以使用Python和Appium Python客户端库编写测试脚本,并通过连接的Android设备进行真机调试。搭建Python+Appium真机调试环境:
二、代码编写:
1.在Appium中,weditor是一种用于查看和编辑UI元素的工具。它是一个图形用户界面(GUI)工具,可用于在Appium会话期间检查和操作应用程序的UI元素。通过连接到正在运行的Appium服务器,weditor可以提供应用程序的层次结构视图,并允许用户查看和编辑元素的属性、定位策略以及执行一些简单的操作,如点击和滑动。
2.在终端输入weditor调用weditor用来查找各个元素,用于编写测试py脚本
使用Appium库来连接并控制手机设备:
'''
这段代码是使用Appium库来连接并控制手机设备的示例代码。
首先,代码导入了必要的库,包括time(时间)、appium.webdriver(Appium库)、TouchAction(触摸操作)、MobileBy(移动设备元素定位)、WebDriverWait(等待条件)和expected_conditions(预期条件)。
然后,定义了一个字典变量desired_caps,其中包含了连接手机设备所需的参数。这些参数包括platformName(平台名称,此处为Android)、platformVersion(平台版本,此处为13)、deviceName(设备名称,此处为SM-G9910)、appPackage(应用程序包名,此处为no.nordicsemi.android.mcp)、appActivity(应用程序启动活动,此处为.MainActivity)、autoGrantPermissions(自动授权权限)和noReset(不重置应用程序状态)。
最后,使用webdriver.Remote方法连接到Appium服务器,并传入服务器地址(http://localhost:4723/wd/hub)和desired_caps参数,创建一个driver对象。通过driver对象可以执行各种操作,如模拟用户点击、滑动、输入等。
'''
import time
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from appium.webdriver.common.mobileby import MobileBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
desired_caps = {
"platformName": "Android",
"platformVersion": "13",
"deviceName": "SM-G9910",
'appPackage': ' no.nordicsemi.android.mcp',
'appActivity': '.MainActivity',
'autoGrantPermissions': True,
'noReset': True
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
3.连接上appium服务器后,接下来就是对手机app的一些控制操作代码(以下为滑动屏幕示例):
# 等待应用程序加载完成
time.sleep(5)
# 获取登录成功后的提示信息
fliter_message = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((MobileBy.ID, "no.nordicsemi.android.mcp:id/filter_header"))).click()
element_fliter_name = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((MobileBy.ID, 'no.nordicsemi.android.mcp:id/only_favorites_switch'))).click()
time.sleep(5)
# 获取屏幕大小
screen_size = driver.get_window_size()
width = screen_size['width']
height = screen_size['height']
# 设置滑动起始点和终点坐标
start_x = width // 2
start_y = height * 3 // 4
end_x = width // 2
end_y = height // 4
# 模拟滑动操作
# while True:
# TouchAction(driver).press(x=start_x, y=start_y).wait(1000).move_to(x=end_x, y=end_y).release().perform()
# time.sleep(10)
# 关闭连接
driver.quit()
4.调试成功,下班