一、使用工具元素定位:
步骤1:进入android-sdk安装目录
如:C:\Android\android-sdk\tools\uiautomatorviewer.bat双击,工具相当于web 的F12元素定位。
步骤2:打开模拟器测试软件,uiautomatorviewer工具捕获,copyresource-id的值,可使用id元素定位,也可以保存定位元素后的文件,下次继续使用
如图:
代码:
driver.find_element(By.ID,"com.baidu.homework:id/tv_agree_click").click()
这个程序,可以自动运行安装apk
比如说跳过,首次启动和非第一次启动 测试,app加参数notreset=true为第一次启动:表示不重置和重置,实现首次启动和非首次启动
二、实例代码:
语言:python
"""
@Time :2023/12/2013:36
@Auth :
@File :test3.py
"""
from appium.webdriver.webdriver import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# from appium.webdriver.common.appiumby import AppiumBy
class TestHomeworkLog(object):
def DeviceMsg(self):
# server启动参数
caps = {
# 设备信息
"platformName": "Android",
"platformVersion": "7.1.2", # 手机操作系统的版本
"deviceName": "127.0.0.1:62001", # 使用手机或模拟器类型
# app信息
"app": r"E:\appapk\9ikandianv3.35.4_downcc.com.apk",
"appPackage": "com.zhiguan.m9ikandian", # 添加包名
"appActivity": "com.zhiguan.m9ikandian.component.activity.SplashActivity", # 登录Activity这里就是一个网站的首页
"noReset": "true" # 实现首次启动与非首次启动的不同,覆盖安装
}
# 运行代码前启动appium,命令行启动或工具启动
# adb logcat |findstr Displayed查询包名 系统自带软件或无apk包
# aapt dump badging **.apk 查找apk的包名
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps) #
driver.implicitly_wait(5)
sleep(6)
driver.find_element(By.ID, "android.widget.TextView").click()
sleep(5)
if __name__ == '__main__':
t = TestHomeworkLog()
t.DeviceMsg()
- 说明
Appium Settings 是appium的守护进程,卸载了,下次启动程序的时候会自动安装
Http://appium.io/docs/cn/writing-running-appium/caps
Appium-Capability官方文档
这里只写了ID定位元素的使用,后面更新其他定位元素方式。