修改了上传页面点击的逻辑;增加循环

This commit is contained in:
2026-03-05 14:32:37 +08:00
parent cfafb9d3d4
commit e285191149
21 changed files with 17440 additions and 17158 deletions

80
test.py Normal file
View File

@@ -0,0 +1,80 @@
from globals.driver_utils import init_appium_driver
from selenium.webdriver.support.ui import WebDriverWait
import permissions # 导入权限处理模块
import logging
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import main # 导入权限处理模块
def get_breakpoint_list_from_page():
driver, wait = init_appium_driver("77a6ac91")
"""
从当前页面获取断点列表的断点名称
Returns:
list: 断点名称列表
"""
breakpoint_list = []
try:
# 优化点1: 等待列表容器出现,确保页面已加载
wait.until(EC.presence_of_element_located((By.ID, "com.bjjw.cjgc:id/upload_result_list")))
# 优化点2: 等待至少一个itemContainer出现确保列表有数据
wait.until(EC.presence_of_element_located((By.ID, "com.bjjw.cjgc:id/itemContainer")))
# 方法1: 直接获取所有标题元素(最直接高效)
title_elements = driver.find_elements(By.ID, "com.bjjw.cjgc:id/title")
if title_elements:
for element in title_elements:
breakpoint_name = element.text
if breakpoint_name and breakpoint_name.strip(): # 增加空值过滤
breakpoint_list.append(breakpoint_name.strip())
print(f"✅ 直接通过title获取到 {len(breakpoint_list)} 个断点")
# 方法2: 如果方法1失败通过itemContainer获取备选方案
if not breakpoint_list:
print("⚠️ 直接获取title失败尝试通过itemContainer获取...")
item_containers = driver.find_elements(By.ID, "com.bjjw.cjgc:id/itemContainer")
for container in item_containers:
try:
title_element = container.find_element(By.ID, "com.bjjw.cjgc:id/title")
breakpoint_name = title_element.text
if breakpoint_name and breakpoint_name.strip():
breakpoint_list.append(breakpoint_name.strip())
except:
continue
print(f"✅ 通过itemContainer获取到 {len(breakpoint_list)} 个断点")
# 打印结果
if breakpoint_list:
print(f"📋 断点列表:")
for i, name in enumerate(breakpoint_list, 1):
print(f" {i}. {name}")
else:
print("⚠️ 未获取到任何断点,列表可能为空")
return breakpoint_list
except Exception as e:
print(f"❌ 获取断点列表失败: {str(e)}")
# 可以在这里打印更多调试信息
try:
page_source = driver.page_source
print("📄 当前页面源码已保存,可用于调试")
# 可以将page_source保存到文件方便分析
with open("debug_page_source.xml", "w", encoding="utf-8") as f:
f.write(page_source)
except:
pass
return breakpoint_list
if __name__ == "__main__":
if permissions.grant_appium_permissions("77a6ac91"):
logging.info(f"设备 77a6ac91 权限授予成功")
else:
logging.warning(f"设备 77a6ac91 权限授予失败")
# 确保Appium服务器正在运行
main.ensure_appium_server_running(4723)
get_breakpoint_list_from_page()