修改了上传页面点击的逻辑;增加循环
This commit is contained in:
80
test.py
Normal file
80
test.py
Normal 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()
|
||||
Reference in New Issue
Block a user