下面我来给您详细讲解。
1. 准备工作
安装 appium
appium 官网提供了详细的安装教程:http://appium.io/docs/en/about-appium/getting-started/?lang=en
安装 python
如果你已经安装了 python,请跳过这一步。
如果你还没有安装 python,请到官网下载 python 安装包并安装:https://www.python.org/downloads/
安装 appium-python-client
pip install Appium-Python-Client
2. 获取元素定位信息
利用 appium inspector 或者使用第三方工具如 uiautomatorviewer 可以获取界面元素的相关信息。
通常元素的信息会包括以下几项:
- id
- name
- className
- xpath
其中 id 和 xpath 是最常用的定位方式。
3. 编写测试用例
以下是一个示例测试用例:
import os
from appium import webdriver
# Appium 连接参数
caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "10"
caps["deviceName"] = "Android Emulator"
caps["appPackage"] = "com.example.app"
caps["appActivity"] = ".MainActivity"
caps["automationName"] = "UiAutomator2"
# 链接 Appium Server
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
# 等待应用启动
driver.implicitly_wait(10)
# 获取能量的按钮
btn_energy = driver.find_element_by_id("btn_energy")
# 获取能量数量
txt_energy = driver.find_element_by_id("txt_energy")
energy_count = int(txt_energy.text)
# 点击能量按钮
btn_energy.click()
# 等待一段时间,判断能量是否增加
driver.implicitly_wait(5)
txt_energy_new = driver.find_element_by_id("txt_energy")
energy_count_new = int(txt_energy_new.text)
if energy_count_new > energy_count:
print("成功收取能量")
else:
print("未能成功收取能量")
# 关闭应用
driver.quit()
这个测试用例的作用是获取 App 中能量的数量,并尝试收取一次能量。如果收取成功,则输出“成功收取能量”,否则输出“未能成功收取能量”。
4. 编写自动化脚本
以下是一个示例自动化脚本:
import os
from appium import webdriver
import time
# Appium 连接参数
caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "10"
caps["deviceName"] = "Android Emulator"
caps["appPackage"] = "com.example.app"
caps["appActivity"] = ".MainActivity"
caps["automationName"] = "UiAutomator2"
# 链接 Appium Server
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
# 等待应用启动
driver.implicitly_wait(10)
while True:
try:
# 获取能量的按钮
btn_energy = driver.find_element_by_id("btn_energy")
# 获取能量数量
txt_energy = driver.find_element_by_id("txt_energy")
energy_count = int(txt_energy.text)
# 点击能量按钮
btn_energy.click()
# 等待一段时间,判断能量是否增加
time.sleep(3)
txt_energy_new = driver.find_element_by_id("txt_energy")
energy_count_new = int(txt_energy_new.text)
if energy_count_new == energy_count:
print('等待中...')
time.sleep(10)
else:
print("成功收取能量")
except:
# 循环结束
print("结束")
break
# 关闭应用
driver.quit()
这个自动化脚本的作用是自动化收取 App 中的能量。
示例说明
以上两个示例分别是一个测试用例和一个自动化脚本。
测试用例主要用于验证能量的收取功能是否正常,可以在开发过程中反复执行。自动化脚本则是实现自动收取能量的功能,可以设置定时执行,实现自动化的收取过程。
需要注意的是,测试用例和自动化脚本都需要获取元素的定位信息,通常情况下使用 id 或者 xpath 可以比较方便地定位元素。同时需要注意等待元素出现的时间和等待元素消失的时间,以确保定位到正确的元素。
希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用python基于appium模块开发一个自动收取能量的小助手 - Python技术站