<!DOCTYPE html>
<html>
  <head>
    <title>兰州中石化项目议题申报测试报告</title>
    <meta charset="UTF-8">
    <style>body {
    font-family: consolas, Verdana, sans-serif;
    font-size: 1.2em;
    color: #696e71;
    display: grid;
    grid-template-columns: 1fr 5rem;
}

.main_section {
    width: 90%;
    margin: 0 auto;
}

#float_menu{
    position:fixed;
    top:0;
    right:0;
    text-align: center;
}

#float_menu .menu-item {
    cursor: pointer;
    padding: .5em;
    margin: .5em 0;
    color: #c08580;
    background-color: #f8f0ef;
    font-size: 1.2em;
}



.result{
    display: flex;
}


.result_table{
    border-collapse: collapse;
    border: 1px solid #f0e0e5;
    width: 30em;
    text-align: center;
    font-size: 1.0em;
}

.result_table td{
    border: 1px solid #f0e0e5;
    padding: .3em;
}

.result_barchart{
    width: 30em;
    margin: 0 5em 0 5em;
}

.barchar_item{
    margin: 2.5rem 0;
}

.barchart_barbox {
    margin: 0.5em 0;
    width: 100%;
    background-color: #fff;
    border: 1px solid #86c2dd;
    border-radius: .2em;
}

.barchart_bar {
    text-align: right;
    height: 1.2rem;
}





.h3_button {
    margin: 1.5em;
    cursor: pointer;
    color: #03a9f4;
}


.info
{
    white-space:pre-wrap;
    margin: .8em 1.5em;
}


.error-info
{
    color: #a64747
}

.suite_dir {
    margin: 1em .2em;
    padding: .3em;
    /* background-color: #dfeff6; */
    border: 1px solid #bcd8e4;
}
.suite_file {
    margin: 1em .2em;
    padding: .3em;
    border: 1px solid #bcd8e4;
}


.case {
    margin: 1em .2em;
    /* padding: .3em; */
    border: 1px solid #e7d4d4;
}

.case_class_path{
    margin: 0em 1em;
}


.folder_header {
    padding: .2em .7em;
    background-color: #fffaf9;
    cursor: pointer;
}


.setup{
    margin: .2em;
    /* padding: .3em; */
    /* border: 1px solid #e7d4d4; */
}
.teardown{
    margin: .2em;
    /* padding: .3em;*/
    /* border: 1px solid #e7d4d4; */
}
.test_steps{
    margin: .2em;
    padding: .3em;
    /* border: 1px solid #e7d4d4; */
}


.label {
    display: inline-block;
    padding: .1em .5em;
    font-size: .88em;
    letter-spacing: 1px;
    white-space: nowrap;
    color: #0d6ebc;
    border-radius: .2em;
    min-width: 5em;
    margin-right: 2em;
    font-family: consolas;
}

/* .suite_setup .label{
    color: #219e26 ;
}
.suite_teardown .label{
    color: #219e26;
} */


/* .case.pass   .casename{
    color: #329132 ;
} */
.case.pass   .caselabel{
    color: white;
    background-color: #3b9e3f;
}
/* .case.fail   .casename{
    color: #a64747;
} */
.case.fail   .caselabel{
    color: white;
    background-color: #a64747;
}
/* .case.abort   .casename{
    color: #953ab7;
} */
.case.abort   .caselabel{
    color: white;
    background-color: #9c27b0;
}



.case_step  {
    margin: .8em;
}
.checkpoint_pass {
    margin: .8em;
}
.checkpoint_fail {
    margin: .8em;
}

.case_step  .tag{
    color: #2196f3;;
    margin: .3em 1em .3em 0;
    padding: .1em .3em;
    font-size: .92em;
}

.checkpoint_pass .tag{
    color: #009806;
    margin:.3em 1em .3em .5em;
    padding: .1em .3em;
    font-size: .92em;
}
.checkpoint_fail .tag{
    color: #9c2020;
    margin:.3em 1em .3em .5em;
    padding: .1em .3em;
    font-size: .92em;
}

.screenshot {
    border: 1px solid #86c2dd;
}

.executetime {
    float: right;
}

/* 模态框内容 */
.modal-content {
    margin: auto;
    display: block;
    width: 95%;
    max-width: 700px;
    max-height: 80vh; /* 设置最大高度为视口高度的80% */
    object-fit: contain; /* 保持图片的宽高比 */
    zoom: 3;
}

/* 模态框 */
.modal {
    display: none; /* 隐藏 */
    position: fixed; /* 固定位置 */
    z-index: 1; /* 坐在顶部 */
    padding-top: 40px; /* 在图片上方添加一些内边距 */
    left: 0;
    top: 0;
    width: 100%; /* 宽度 */
    height: 100%; /* 高度 */
    overflow: auto; /* 启用滚动 */
    background-color: rgb(0,0,0); /* 背景颜色 */
    background-color: rgba(0,0,0,0.9); /* 黑色背景半透明 */
}

/* 关闭按钮 */
.close {
    position: absolute;  /* 定义元素的定位方式为绝对定位 */
    top: 10px;           /* 距离最近的已定位祖先元素顶部15像素 */
    right: 30px;         /* 距离最近的已定位祖先元素右侧35像素 */
    color: #f1f1f1;      /* 文本颜色为浅灰色 */
    font-size: 15px;     /* 字体大小为40像素 */
    font-weight: bold;   /* 字体加粗 */
    transition: 0.3s;    /* 过渡效果,0.3秒内完成 */
}


.close:hover,
.close:focus {
    color: #bbb;
    text-decoration: none;
    cursor: pointer;
}
</style>
    <script type="text/javascript">var FOLDER_ALL_CASES = false; // 是否为精简模式的标记
var ERROR_INFOS = [];  // 错误信息列表
var current_error_idx = -1;

// 页面加载后执行的函数
window.addEventListener("load", function(){
    // 所有 .folder_header 添加点击事件处理
    let folderHeaderEles = document.querySelectorAll(".folder_header");
    folderHeaderEles.forEach(function(ele) {
        ele.addEventListener("click", function(event) {
            let fb = event.target.closest('.folder_header').nextElementSibling;
            fb.style.display = fb.style.display === 'none' ? 'block' : 'none';
        });
    });

    // 找到所有的错误信息对象
    ERROR_INFOS = document.querySelectorAll(".error-info");

    // 获取所有图片元素
    let images = document.querySelectorAll('.modal-image');

    // 获取模态框元素
    let modal = document.getElementById("imageModal");

    // 获取模态框中的图片元素
    let modalImg = document.getElementById("img01");

    // 获取关闭按钮元素
    let span = document.getElementsByClassName("close")[0];

    // 为每个图片添加点击事件监听器
    images.forEach(function(img) {
        img.addEventListener("click", function() {
            modal.style.display = "block"; // 显示模态框
            modalImg.src = this.src; // 设置模态框中的图片为点击的图片
        });
    });

    // 当点击关闭按钮时,隐藏模态框
    span.onclick = function() {
        modal.style.display = "none";
    };

    // 当点击模态框外区域时,隐藏模态框
    window.onclick = function(event) {
        if (event.target == modal) {
            modal.style.display = "none";
        }
    };
});

function toggle_folder_all_cases(){
    let eles = document.querySelectorAll(".folder_body");

    FOLDER_ALL_CASES = !FOLDER_ALL_CASES;
    document.getElementById('display_mode').innerHTML = FOLDER_ALL_CASES ? "Detail" : "Summary";

    for (const ele of eles){
        ele.style.display =  FOLDER_ALL_CASES ? "none" : "block";
    }
}

function previous_error(){
    // 查找错误必须是详细模式
    if (FOLDER_ALL_CASES)
        toggle_folder_all_cases()

    current_error_idx -= 1;
    if (current_error_idx < 0)
        current_error_idx = 0;

    let error = ERROR_INFOS[current_error_idx];

    error.scrollIntoView({behavior: "smooth", block: "center", inline: "start"});
}

function next_error(){
    // 查找错误必须是详细模式
    if (FOLDER_ALL_CASES)
        toggle_folder_all_cases()

    current_error_idx += 1;
    if (current_error_idx > ERROR_INFOS.length - 1)
        current_error_idx = ERROR_INFOS.length - 1;

    let error = ERROR_INFOS[current_error_idx];

    error.scrollIntoView({behavior: "smooth", block: "center", inline: "start"});
}
</script>
  </head>
  <body>
    <div class="modal" id="imageModal">
      <div>
        <img class="modal-content" id="img01">
        <span class="close">关闭</span>
      </div>
    </div>
    <div class="main_section">
      <h1 style="font-family: auto">兰州中石化项目议题申报测试报告</h1>
      <h3>统计结果</h3>
      <div class="result">
        <table class="result_table">
          <tbody>
            <tr>
              <td>hytest 版本</td>
              <td>0.8.12</td>
            </tr>
            <tr>
              <td>开始时间</td>
              <td>2025/06/10 15:32:23</td>
            </tr>
            <tr>
              <td>结束时间</td>
              <td>2025/06/10 15:33:25</td>
            </tr>
            <tr>
              <td>耗时</td>
              <td>62.419 秒</td>
            </tr>
            <tr>
              <td>预备执行用例数量</td>
              <td>3</td>
            </tr>
            <tr>
              <td>实际执用例行数量</td>
              <td>3</td>
            </tr>
            <tr>
              <td>通过</td>
              <td>1</td>
            </tr>
            <tr>
              <td>失败</td>
              <td style="">0</td>
            </tr>
            <tr>
              <td>异常</td>
              <td style="color:red">2</td>
            </tr>
            <tr>
              <td>阻塞</td>
              <td style="">0</td>
            </tr>
            <tr>
              <td>套件初始化失败</td>
              <td style="">0</td>
            </tr>
            <tr>
              <td>套件清除  失败</td>
              <td style="">0</td>
            </tr>
            <tr>
              <td>用例初始化失败</td>
              <td style="">0</td>
            </tr>
            <tr>
              <td>用例清除  失败</td>
              <td style="">0</td>
            </tr>
          </tbody>
        </table>
        <div class="result_barchart">
          <div class="barchar_item">
            <span>用例通过 33.3% : 1 个</span>
            <div class="barchart_barbox">
              <div class="barchart_bar" style="width: 33.3%; background-color: #04AA6D;"></div>
            </div>
          </div>
          <div class="barchar_item">
            <span>用例失败 0% : 0 个</span>
            <div class="barchart_barbox">
              <div class="barchart_bar" style="width: 0.0%; background-color: #bb4069;"></div>
            </div>
          </div>
          <div class="barchar_item">
            <span>用例异常 66.7% : 2 个</span>
            <div class="barchart_barbox">
              <div class="barchart_bar" style="width: 66.7%; background-color: #9c27b0;"></div>
            </div>
          </div>
          <div class="barchar_item">
            <span>用例阻塞 0% : 0 个</span>
            <div class="barchart_barbox">
              <div class="barchart_bar" style="width: 0.0%; background-color: #dcbdbd;"></div>
            </div>
          </div>
        </div>
      </div>
      <div style="margin-top:2em">
        <h3 style="display:inline">执行日志</h3>
      </div>
      <div class="exec_log">
        <div class="suite_dir" id="suite_dir cases\">
          <div>
            <span class="label">进入目录</span>
            <span>cases\</span>
          </div>
        </div>
        <div class="suite_dir" id="suite_dir cases\项目定制\兰州中石化项目25-05-24\议题申报\">
          <div>
            <span class="label">进入目录</span>
            <span>cases\项目定制\兰州中石化项目25-05-24\议题申报\</span>
          </div>
          <div class="suite_setup setup" id="suite_setup setup cases\项目定制\兰州中石化项目25-05-24\议题申报\">
            <div class="folder_header">
              <span class="label">套件初始化</span>
              <span>cases\项目定制\兰州中石化项目25-05-24\议题申报\</span>
              <span class="executetime">2025-06-10 15:32:23</span>
            </div>
            <div class="folder_body">
              <div class="case_step">
                <span class="tag">步骤 #1</span>
                <span>初始化浏览器</span>
              </div>
              <div class="info">'----------' 正在初始化浏览器 '----------'</div>
              <div class="info">'----------' 浏览器初始化完成 '----------'</div>
              <div class="info">输入用户名:admin</div>
              <div class="info">输入密码:Ubains@4321</div>
              <div class="info">输入验证码:csba</div>
              <div class="info">点击登录按钮</div>
            </div>
          </div>
        </div>
        <div class="suite_file" id="suite_file cases\项目定制\兰州中石化项目25-05-24\议题申报\议题申报.py">
          <div>
            <span class="label">进入文件</span>
            <span>cases\项目定制\兰州中石化项目25-05-24\议题申报\议题申报.py</span>
          </div>
          <div class="case pass" id="case_00000001">
            <div class="folder_header">
              <span class="label caselabel">用例 PASS</span>
              <span class="casename">议题申报001</span>
              <span class="executetime">2025-06-10 15:32:33</span>
            </div>
            <div class="folder_body">
              <span class="case_class_path">cases\项目定制\兰州中石化项目25-05-24\议题申报\议题申报.py::TopicDeclaration</span>
              <div class="test_steps" id="test_steps 议题申报001">
                <span class="label">测试步骤</span>
                <div class="info">点击【议题申报】按钮</div>
                <div class="info">页面: TopicDeclaration、元素定位类型: xpath、元素定位值: //body/div[@class='el-dialog__wrapper']/div[@aria-label='dialog']/div[@class='el-dialog__body']/div[@class='dialog_content']/div[1]/div[2]/div[1]/div[1]、元素类型: getText、元素值: 、预期结果: admin</div>
                <div class="info">获取到的文本信息为:申报人:
admin</div>
                <div class="checkpoint_pass">
                  <span class="tag">检查点 PASS</span>
                  <span>获取到的文本信息为:申报人:
admin</span>
                </div>
                <div>
                  <img class="modal-image screenshot" src="imgs/20250610153234961855.png" width="50">
                </div>
              </div>
            </div>
          </div>
          <div class="case abort" id="case_00000002">
            <div class="folder_header">
              <span class="label caselabel">用例 ABORT</span>
              <span class="casename">议题申报003</span>
              <span class="executetime">2025-06-10 15:32:41</span>
            </div>
            <div class="folder_body">
              <span class="case_class_path">cases\项目定制\兰州中石化项目25-05-24\议题申报\议题申报.py::TopicDeclaration</span>
              <div class="test_steps" id="test_steps 议题申报003">
                <span class="label">测试步骤</span>
                <div class="info">点击【议题申报】按钮</div>
                <div class="info">页面: TopicDeclaration、元素定位类型: xpath、元素定位值: //p[@class='el-message__content']、元素类型: getTips、元素值: 、预期结果: 请输入议题名称</div>
                <div class="info">Exception occurred: Message: 
Stacktrace:
	GetHandleVerifier [0x0x7ff6548a91f5+2853845]
	GetHandleVerifier [0x0x7ff654603ac0+79008]
	(No symbol) [0x0x7ff6543c9bda]
	(No symbol) [0x0x7ff6544200f6]
	(No symbol) [0x0x7ff6544203ac]
	(No symbol) [0x0x7ff654473b07]
	(No symbol) [0x0x7ff6544484ff]
	(No symbol) [0x0x7ff6544708f5]
	(No symbol) [0x0x7ff654448293]
	(No symbol) [0x0x7ff654411061]
	(No symbol) [0x0x7ff654411df3]
	GetHandleVerifier [0x0x7ff6548d410d+3029741]
	GetHandleVerifier [0x0x7ff6548ce52d+3006221]
	GetHandleVerifier [0x0x7ff6548ed5b2+3133330]
	GetHandleVerifier [0x0x7ff65461d98e+185198]
	GetHandleVerifier [0x0x7ff654624edf+215231]
	GetHandleVerifier [0x0x7ff65460c324+113924]
	GetHandleVerifier [0x0x7ff65460c4d9+114361]
	GetHandleVerifier [0x0x7ff6545f3208+11240]
	BaseThreadInitThunk [0x0x7ffb2264e8d7+23]
	RtlUserThreadStart [0x0x7ffb2449c5dc+44]
</div>
                <div class="info">获取到的提示信息为:None</div>
                <div class="info error-info">argument of type 'NoneType' is not iterable 
Traceback:
  File &quot;E:\GithubData\自动化\ubains-module-test\预定系统\cases\项目定制\兰州中石化项目25-05-24\议题申报\议题申报.py&quot;, line 65, in teststeps
    CHECK_POINT(f&quot;获取到的提示信息为:{notify_text}&quot;, expented_result in notify_text)
TypeError: argument of type 'NoneType' is not iterable
</div>
              </div>
            </div>
          </div>
          <div class="case abort" id="case_00000003">
            <div class="folder_header">
              <span class="label caselabel">用例 ABORT</span>
              <span class="casename">议题申报004</span>
              <span class="executetime">2025-06-10 15:33:06</span>
            </div>
            <div class="folder_body">
              <span class="case_class_path">cases\项目定制\兰州中石化项目25-05-24\议题申报\议题申报.py::TopicDeclaration</span>
              <div class="test_steps" id="test_steps 议题申报004">
                <span class="label">测试步骤</span>
                <div class="info">点击【议题申报】按钮</div>
                <div class="info error-info">Message: element click intercepted: Element &lt;div data-v-6ef76e62=&quot;&quot; data-v-b2520026=&quot;&quot; class=&quot;nav_item&quot; id=&quot;CreateTopic&quot;&gt;...&lt;/div&gt; is not clickable at point (191, 358). Other element would receive the click: &lt;div data-v-b7819456=&quot;&quot; class=&quot;el-dialog__wrapper&quot; style=&quot;z-index: 2001;&quot;&gt;...&lt;/div&gt;
  (Session info: chrome=137.0.7151.41)
Stacktrace:
	GetHandleVerifier [0x0x7ff6548a91f5+2853845]
	GetHandleVerifier [0x0x7ff654603ac0+79008]
	(No symbol) [0x0x7ff6543c9bda]
	(No symbol) [0x0x7ff6544280e9]
	(No symbol) [0x0x7ff654425a8b]
	(No symbol) [0x0x7ff654422ad1]
	(No symbol) [0x0x7ff6544219d1]
	(No symbol) [0x0x7ff654413004]
	(No symbol) [0x0x7ff6544484ba]
	(No symbol) [0x0x7ff6544128b6]
	(No symbol) [0x0x7ff6544486d0]
	(No symbol) [0x0x7ff6544708f5]
	(No symbol) [0x0x7ff654448293]
	(No symbol) [0x0x7ff654411061]
	(No symbol) [0x0x7ff654411df3]
	GetHandleVerifier [0x0x7ff6548d410d+3029741]
	GetHandleVerifier [0x0x7ff6548ce52d+3006221]
	GetHandleVerifier [0x0x7ff6548ed5b2+3133330]
	GetHandleVerifier [0x0x7ff65461d98e+185198]
	GetHandleVerifier [0x0x7ff654624edf+215231]
	GetHandleVerifier [0x0x7ff65460c324+113924]
	GetHandleVerifier [0x0x7ff65460c4d9+114361]
	GetHandleVerifier [0x0x7ff6545f3208+11240]
	BaseThreadInitThunk [0x0x7ffb2264e8d7+23]
	RtlUserThreadStart [0x0x7ffb2449c5dc+44]
 
Traceback:
  File &quot;E:\GithubData\自动化\ubains-module-test\预定系统\cases\项目定制\兰州中石化项目25-05-24\议题申报\议题申报.py&quot;, line 37, in teststeps
    safe_click((By.XPATH, &quot;//div[@id='CreateTopic']&quot;), wd)
  File &quot;E:\GithubData\自动化\ubains-module-test\预定系统\Base\base.py&quot;, line 252, in safe_click
    element.click()
  File &quot;E:\Python\lib\site-packages\selenium\webdriver\remote\webelement.py&quot;, line 119, in click
    self._execute(Command.CLICK_ELEMENT)
  File &quot;E:\Python\lib\site-packages\selenium\webdriver\remote\webelement.py&quot;, line 572, in _execute
    return self._parent.execute(command, params)
  File &quot;E:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py&quot;, line 448, in execute
    self.error_handler.check_response(response)
  File &quot;E:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py&quot;, line 232, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element &lt;div data-v-6ef76e62=&quot;&quot; data-v-b2520026=&quot;&quot; class=&quot;nav_item&quot; id=&quot;CreateTopic&quot;&gt;...&lt;/div&gt; is not clickable at point (191, 358). Other element would receive the click: &lt;div data-v-b7819456=&quot;&quot; class=&quot;el-dialog__wrapper&quot; style=&quot;z-index: 2001;&quot;&gt;...&lt;/div&gt;
  (Session info: chrome=137.0.7151.41)
Stacktrace:
	GetHandleVerifier [0x0x7ff6548a91f5+2853845]
	GetHandleVerifier [0x0x7ff654603ac0+79008]
	(No symbol) [0x0x7ff6543c9bda]
	(No symbol) [0x0x7ff6544280e9]
	(No symbol) [0x0x7ff654425a8b]
	(No symbol) [0x0x7ff654422ad1]
	(No symbol) [0x0x7ff6544219d1]
	(No symbol) [0x0x7ff654413004]
	(No symbol) [0x0x7ff6544484ba]
	(No symbol) [0x0x7ff6544128b6]
	(No symbol) [0x0x7ff6544486d0]
	(No symbol) [0x0x7ff6544708f5]
	(No symbol) [0x0x7ff654448293]
	(No symbol) [0x0x7ff654411061]
	(No symbol) [0x0x7ff654411df3]
	GetHandleVerifier [0x0x7ff6548d410d+3029741]
	GetHandleVerifier [0x0x7ff6548ce52d+3006221]
	GetHandleVerifier [0x0x7ff6548ed5b2+3133330]
	GetHandleVerifier [0x0x7ff65461d98e+185198]
	GetHandleVerifier [0x0x7ff654624edf+215231]
	GetHandleVerifier [0x0x7ff65460c324+113924]
	GetHandleVerifier [0x0x7ff65460c4d9+114361]
	GetHandleVerifier [0x0x7ff6545f3208+11240]
	BaseThreadInitThunk [0x0x7ffb2264e8d7+23]
	RtlUserThreadStart [0x0x7ffb2449c5dc+44]

</div>
              </div>
            </div>
          </div>
          <div class="suite_teardown teardown" id="suite_teardown teardown cases\项目定制\兰州中石化项目25-05-24\议题申报\">
            <div class="folder_header">
              <span class="label">套件清除</span>
              <span>cases\项目定制\兰州中石化项目25-05-24\议题申报\</span>
              <span class="executetime">2025-06-10 15:33:07</span>
            </div>
            <div class="folder_body"></div>
          </div>
          <div class="suite_teardown teardown" id="suite_teardown teardown cases\">
            <div class="folder_header">
              <span class="label">套件清除</span>
              <span>cases\</span>
              <span class="executetime">2025-06-10 15:33:09</span>
            </div>
            <div class="folder_body">
              <div class="info">清除浏览器</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div id="float_menu">
      <div class="menu-item" onclick="document.querySelector(&quot;body&quot;).scrollIntoView()">页首</div>
      <div class="menu-item" onclick="window.open(&quot;http://www.byhy.net/tut/auto/hytest/01&quot;, &quot;_blank&quot;); ">帮助</div>
      <div class="menu-item" id="display_mode" onclick="toggle_folder_all_cases()">Summary</div>
      <div class="error_jumper" display="block">
        <div class="menu-item" onclick="previous_error()" title="上一个错误">∧</div>
        <div class="menu-item" onclick="next_error()" title="下一个错误">∨</div>
      </div>
    </div>
  </body>
</html>