串起截图和上传
This commit is contained in:
@@ -40,7 +40,7 @@ class UploadConfigPage:
|
||||
except Exception as e:
|
||||
self.logger.error(f"获取当前activity时出错: {str(e)}")
|
||||
|
||||
# 尝试返回到主页面(如果不在主页面)
|
||||
# 尝试返回到主页面(如果不在主页面)保存上传
|
||||
self.logger.info("尝试返回到主页面...")
|
||||
max_back_presses = 5 # 最多按返回键次数
|
||||
back_press_count = 0
|
||||
@@ -932,6 +932,19 @@ class UploadConfigPage:
|
||||
condition_button.click()
|
||||
self.logger.info(f"成功点击{work_type_name}工况选择按钮")
|
||||
|
||||
# 检查是否有ListView,如果没有就再次点击
|
||||
try:
|
||||
# 尝试查找ListView
|
||||
self.wait.until(
|
||||
EC.presence_of_element_located((AppiumBy.CLASS_NAME, "android.widget.ListView"))
|
||||
)
|
||||
self.logger.info(f"找到{work_type_name}工况选择的ListView")
|
||||
except TimeoutException:
|
||||
# 没有找到ListView,再次点击按钮
|
||||
self.logger.warning(f"未找到{work_type_name}工况选择的ListView,再次点击按钮")
|
||||
condition_button.click()
|
||||
self.logger.info(f"再次成功点击{work_type_name}工况选择按钮")
|
||||
|
||||
# 选择主要的工况选项
|
||||
if self._select_condition_option(workinfo_name):
|
||||
self.logger.info(f"成功为{work_type_name}选择主要工况: {workinfo_name}")
|
||||
@@ -1120,10 +1133,24 @@ class UploadConfigPage:
|
||||
"com.bjjw.cjgc:id/point_workinfo_sp"
|
||||
)
|
||||
|
||||
|
||||
# 验证按钮是否可见和可用
|
||||
if workinfo_button.is_displayed() and workinfo_button.is_enabled():
|
||||
workinfo_button.click()
|
||||
self.logger.info(f"已点击测点 {point_id} 的工况选择按钮")
|
||||
self.logger.info(f"已点击测点 {point_id} 的次要工况选择按钮")
|
||||
# 检查是否有ListView,如果没有就再次点击
|
||||
try:
|
||||
# 尝试查找ListView
|
||||
self.wait.until(
|
||||
EC.presence_of_element_located((AppiumBy.CLASS_NAME, "android.widget.ListView"))
|
||||
)
|
||||
self.logger.info(f"找到{point_id}次要工况选择的ListView")
|
||||
except TimeoutException:
|
||||
# 没有找到ListView,再次点击按钮
|
||||
self.logger.warning(f"未找到{point_id}次要工况选择的ListView,再次点击按钮")
|
||||
workinfo_button.click()
|
||||
self.logger.info(f"再次成功点击{point_id}次要工况选择按钮")
|
||||
|
||||
|
||||
# 选择对应的工况选项
|
||||
if self._select_minor_conditions_option(workinfoname, work_type):
|
||||
@@ -1370,33 +1397,6 @@ class UploadConfigPage:
|
||||
|
||||
return points
|
||||
|
||||
def _set_single_point_work_condition(self, point_data: Dict, workinfo_name: str, work_type: str) -> bool:
|
||||
"""为单个测点设置工况信息"""
|
||||
try:
|
||||
point_name = point_data.get('point_name')
|
||||
self.logger.info(f"开始为测点 {point_name} 设置工况: {workinfo_name}")
|
||||
|
||||
# 使用保存的元素引用点击工况选择按钮
|
||||
workinfo_element = point_data.get('workinfo_element')
|
||||
if workinfo_element:
|
||||
workinfo_element.click()
|
||||
time.sleep(1) # 等待选项弹出
|
||||
|
||||
# 选择指定的工况
|
||||
if self._select_condition_option(workinfo_name):
|
||||
self.logger.info(f"成功为测点 {point_name} 设置工况: {workinfo_name}")
|
||||
return True
|
||||
else:
|
||||
self.logger.warning(f"为测点 {point_name} 选择工况选项失败")
|
||||
return False
|
||||
else:
|
||||
self.logger.warning(f"未找到测点 {point_name} 的工况选择按钮")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
self.logger.error(f"为测点 {point_name} 设置工况时出错: {str(e)}")
|
||||
return False
|
||||
|
||||
def _select_condition_option(self, condition_name: str) -> bool:
|
||||
"""选择具体的工况选项
|
||||
|
||||
@@ -1434,18 +1434,18 @@ class UploadConfigPage:
|
||||
self.logger.debug("未找到列表项形式的工况选项")
|
||||
|
||||
# 方法3: 尝试点击屏幕特定位置(备选方案)
|
||||
try:
|
||||
# 获取屏幕尺寸
|
||||
window_size = self.driver.get_window_size()
|
||||
x = window_size['width'] // 2
|
||||
y = window_size['height'] // 2
|
||||
# try:
|
||||
# # 获取屏幕尺寸
|
||||
# window_size = self.driver.get_window_size()
|
||||
# x = window_size['width'] // 2
|
||||
# y = window_size['height'] // 2
|
||||
|
||||
# 点击屏幕中央(假设选项在中间)
|
||||
self.driver.tap([(x, y)])
|
||||
self.logger.info("通过点击屏幕中央选择工况")
|
||||
return True
|
||||
except Exception as e:
|
||||
self.logger.debug(f"点击屏幕中央失败: {str(e)}")
|
||||
# # 点击屏幕中央(假设选项在中间)
|
||||
# self.driver.tap([(x, y)])
|
||||
# self.logger.info("通过点击屏幕中央选择工况")
|
||||
# return True
|
||||
# except Exception as e:
|
||||
# self.logger.debug(f"点击屏幕中央失败: {str(e)}")
|
||||
|
||||
self.logger.error(f"所有方法都无法选择工况选项: {condition_name}")
|
||||
return False
|
||||
@@ -1606,7 +1606,7 @@ class UploadConfigPage:
|
||||
self.logger.info("开始等待上传完成")
|
||||
|
||||
# 等待弹窗显示
|
||||
upload_list = WebDriverWait(self.driver, 10).until(
|
||||
upload_list = WebDriverWait(self.driver, 2).until(
|
||||
EC.presence_of_element_located((AppiumBy.ID, "android:id/customPanel"))
|
||||
)
|
||||
#等待弹窗消失
|
||||
@@ -1862,13 +1862,13 @@ class UploadConfigPage:
|
||||
return False
|
||||
|
||||
|
||||
# 表达填写完成,点击"保存上传"并处理弹窗
|
||||
if not self.click_save_upload_and_handle_dialogs():
|
||||
self.logger.error("点击保存上传并处理弹窗失败")
|
||||
return False
|
||||
# # 表达填写完成,点击"保存上传"并处理弹窗
|
||||
# if not self.click_save_upload_and_handle_dialogs():
|
||||
# self.logger.error("点击保存上传并处理弹窗失败")
|
||||
# return False
|
||||
|
||||
# # 暂不上传,使用返回按钮替代。
|
||||
# self.driver.back()
|
||||
# 暂不上传,使用返回按钮替代。
|
||||
self.driver.back()
|
||||
|
||||
|
||||
# 等待上传,查看loading弹窗。没有就下一个
|
||||
|
||||
Reference in New Issue
Block a user