提交 b7bcebb6 authored 作者: 陈泽健's avatar 陈泽健

调试write_xlsx_data函数与统一平台的窗口切换关闭。

上级 c38ef627
此差异已折叠。
此差异已折叠。
此差异已折叠。
=== [ 收集测试用例 ] ===
== cases\主流程功能\__st__.py
=== [ 收集测试用例 ] ===
== cases\主流程功能\__st__.py
== cases\主流程功能\01创建本地会议.py
** no cases in this file , skip it.
== cases\主流程功能\02创建视讯会议.py
** no cases in this file , skip it.
== cases\主流程功能\04调试创建会议.py
== cases\主流程功能\05会议控制.py
** no cases in this file , skip it.
=== [ 执行测试用例 ] ===
预备执行用例数量 : 1
========= 测试开始 : 20250321_172309 =========
>>> cases\主流程功能\
[ suite setup ] cases\主流程功能\
-- 第 1 步 -- 初始化浏览器
'----------' 正在初始化浏览器 '----------'
'----------' 浏览器初始化完成 '----------'
-- 第 2 步 -- 登录系统
>>> cases\主流程功能\04调试创建会议.py
* Unified_Platform_0001 - 2025-03-21 17:23:20
[ case execution steps ]
ABORT Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=131.0.6778.264)
Stacktrace:
GetHandleVerifier [0x010AFD53+23747]
(No symbol) [0x01037D54]
(No symbol) [0x00F0BE53]
(No symbol) [0x00EED91B]
(No symbol) [0x00F77EFF]
(No symbol) [0x00F8AD49]
(No symbol) [0x00F71B96]
(No symbol) [0x00F43F3C]
(No symbol) [0x00F44EBD]
GetHandleVerifier [0x0138AC73+3017699]
GetHandleVerifier [0x0139B93B+3086507]
GetHandleVerifier [0x013940F2+3055714]
GetHandleVerifier [0x01145AF0+637536]
(No symbol) [0x01040A5D]
(No symbol) [0x0103DA28]
(No symbol) [0x0103DBC5]
(No symbol) [0x010307F0]
BaseThreadInitThunk [0x765E7BA9+25]
RtlInitializeExceptionChain [0x77B6C28B+107]
RtlClearBits [0x77B6C20F+191]
Traceback:
File "D:\GithubData\自动化\ubains-module-test\统一平台\cases\主流程功能\04调试创建会议.py", line 27, in teststeps
safe_click((By.XPATH, "//p[contains(text(),'新建会议')]"), wd)
File "D:\GithubData\自动化\ubains-module-test\统一平台\base\bases.py", line 239, in safe_click
element = WebDriverWait(wd, 5).until(EC.visibility_of_element_located(element_locator))
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\support\wait.py", line 96, in until
value = method(self._driver)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 156, in _predicate
return _element_if_visible(driver.find_element(*locator))
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 770, in find_element
return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 384, in execute
self.error_handler.check_response(response)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 232, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=131.0.6778.264)
Stacktrace:
GetHandleVerifier [0x010AFD53+23747]
(No symbol) [0x01037D54]
(No symbol) [0x00F0BE53]
(No symbol) [0x00EED91B]
(No symbol) [0x00F77EFF]
(No symbol) [0x00F8AD49]
(No symbol) [0x00F71B96]
(No symbol) [0x00F43F3C]
(No symbol) [0x00F44EBD]
GetHandleVerifier [0x0138AC73+3017699]
GetHandleVerifier [0x0139B93B+3086507]
GetHandleVerifier [0x013940F2+3055714]
GetHandleVerifier [0x01145AF0+637536]
(No symbol) [0x01040A5D]
(No symbol) [0x0103DA28]
(No symbol) [0x0103DBC5]
(No symbol) [0x010307F0]
BaseThreadInitThunk [0x765E7BA9+25]
RtlInitializeExceptionChain [0x77B6C28B+107]
RtlClearBits [0x77B6C20F+191]
[ suite teardown ] cases\主流程功能\
清除浏览器
========= 测试结束 : 20250321_172328 =========
耗时 : 19.511 秒
预备执行用例数量 : 1
实际执行用例数量 : 1
通过 : 0
失败 : 0
异常 : 1
套件初始化失败 : 0
套件清除 失败 : 0
用例初始化失败 : 0
用例清除 失败 : 0
=== [ 收集测试用例 ] ===
== cases\主流程功能\__st__.py
== cases\主流程功能\01创建本地会议.py
** no cases in this file , skip it.
== cases\主流程功能\02创建视讯会议.py
** no cases in this file , skip it.
== cases\主流程功能\04调试创建会议.py
== cases\主流程功能\05会议控制.py
** no cases in this file , skip it.
=== [ 执行测试用例 ] ===
预备执行用例数量 : 1
========= 测试开始 : 20250321_172006 =========
>>> cases\主流程功能\
[ suite setup ] cases\主流程功能\
-- 第 1 步 -- 初始化浏览器
'----------' 正在初始化浏览器 '----------'
'----------' 浏览器初始化完成 '----------'
-- 第 2 步 -- 登录系统
>>> cases\主流程功能\04调试创建会议.py
* Unified_Platform_0001 - 2025-03-21 17:20:14
[ case execution steps ]
PASS
[ suite teardown ] cases\主流程功能\
清除浏览器
========= 测试结束 : 20250321_172028 =========
耗时 : 22.699 秒
预备执行用例数量 : 1
实际执行用例数量 : 1
通过 : 1
失败 : 0
异常 : 0
套件初始化失败 : 0
套件清除 失败 : 0
用例初始化失败 : 0
用例清除 失败 : 0
此差异已折叠。
此差异已折叠。
此差异已折叠。
...@@ -1721,13 +1721,14 @@ def approval_status_control(message_name, approval_type, wd): ...@@ -1721,13 +1721,14 @@ def approval_status_control(message_name, approval_type, wd):
import os import os
import openpyxl import openpyxl
import logging import logging
def write_xlsx_data(xlsx_file_path, sheet_name, column_name, data): def write_xlsx_data(xlsx_file_path, sheet_name, function_number, column_name, data):
""" """
在XLSX文件的指定列的第四行开始填充测试数据。 在XLSX文件的指定列的指定功能编号的行开始填充测试数据。
参数: 参数:
xlsx_file_path (str): XLSX文件的路径。 xlsx_file_path (str): XLSX文件的路径。
sheet_name (str): 工作表的名称。 sheet_name (str): 工作表的名称。
function_number (str): 功能编号,用于匹配行。
column_name (str): 要写入数据的列名。 column_name (str): 要写入数据的列名。
data (list): 要写入的数据列表。 data (list): 要写入的数据列表。
""" """
...@@ -1754,20 +1755,31 @@ def write_xlsx_data(xlsx_file_path, sheet_name, column_name, data): ...@@ -1754,20 +1755,31 @@ def write_xlsx_data(xlsx_file_path, sheet_name, column_name, data):
# 打印表头列名 # 打印表头列名
logging.info(f"表头列名: {headers}") logging.info(f"表头列名: {headers}")
# 找到表头中名为 'column_name' 的列索引 # 找到表头中名为 'function_number' 和 'column_name' 的列索引
try:
function_number_index = headers.index("功能编号")
except ValueError as e:
raise ValueError(f"表头中没有找到 '功能编号' 列: {e}")
try: try:
column_index = headers.index(column_name) column_index = headers.index(column_name)
except ValueError as e: except ValueError as e:
raise ValueError(f"表头中没有找到所需的列: {column_name}") raise ValueError(f"表头中没有找到所需的列: {column_name}")
# 从第四行开始写入数据 # 遍历数据行,找到与给定功能编号匹配的行
for row_num, value in enumerate(data, start=4): for row in sheet.iter_rows(min_row=4, values_only=True):
cell = sheet.cell(row=row_num, column=column_index + 1) # 列索引从1开始 if row[function_number_index] == function_number:
cell.value = value row_num = row[0].row
for data_index, value in enumerate(data, start=0):
cell = sheet.cell(row=row_num + data_index, column=column_index + 1) # 列索引从1开始
cell.value = value
break
else:
raise ValueError(f"未找到功能编号为 {function_number} 的行")
# 保存修改后的文件 # 保存修改后的文件
try: try:
workbook.save(xlsx_file_path) workbook.save(xlsx_file_path)
logging.info(f"文件 {xlsx_file_path} 已保存,数据已写入列 {column_name} 的第四行开始。") logging.info(f"文件 {xlsx_file_path} 已保存,数据已写入功能编号为 {function_number} 的行,列 {column_name}。")
except Exception as e: except Exception as e:
logging.error(f"保存文件时出错: {e}") logging.error(f"保存文件时出错: {e}")
\ No newline at end of file
...@@ -266,4 +266,4 @@ ...@@ -266,4 +266,4 @@
- 补充clear_columns_in_xlsx函数实现在读取测试用例前,先将测试结果和日志截图清空。 - 补充clear_columns_in_xlsx函数实现在读取测试用例前,先将测试结果和日志截图清空。
71. 2025-03-21 71. 2025-03-21
- 实现通过JSON数据中对应的name值来区分测试用例数量。 - 实现通过JSON数据中对应的name值来区分测试用例数量。
- 补充write_xlsx_data函数用以将测试结果与日志截图写入到xlsx测试用例文件中。 - 补充write_xlsx_data函数用以将测试结果与日志截图写入到xlsx测试用例文件中。调试write_xlsx_data函数与统一平台的窗口切换关闭。
\ No newline at end of file \ No newline at end of file
...@@ -63,9 +63,9 @@ class ChangAnMessageApproval: ...@@ -63,9 +63,9 @@ class ChangAnMessageApproval:
"Template_Edit", "长安审批测试") "Template_Edit", "长安审批测试")
INFO(f"提示信息为:{notify_text}") INFO(f"提示信息为:{notify_text}")
if CHECK_POINT("编辑测试判断是否正确", expented_result in notify_text): if CHECK_POINT("编辑测试判断是否正确", expented_result in notify_text):
write_xlsx_data(xlsx_file_path, "会议审批", "测试结果", "通过") write_xlsx_data(xlsx_file_path, "会议审批", name,"测试结果", "通过")
else: else:
write_xlsx_data(xlsx_file_path, "会议审批", "测试结果", "失败") write_xlsx_data(xlsx_file_path, "会议审批", name,"测试结果", "失败")
SELENIUM_LOG_SCREEN(wd, "50") SELENIUM_LOG_SCREEN(wd, "50")
elif element_type == "function": elif element_type == "function":
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论