You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Karate UI中结合条件逻辑重复执行自定义函数

多页内容遍历与合并的测试用例实现

我正在编写测试用例验证页面内容,单页内容的提取方案已确定,但当前场景中内容被分割为多页,仅能通过按下Enter键翻页。判断是否到达内容末尾的唯一依据是特定区域的结构变化:

非末尾页结构

<div id="msgList" class="test">
   <table>
      <tbody>
         <tr class="infoText">
            <td class="Type">reminder</td>
            <td class="Text">99  more data to view</td>
            <td class="messageNumber">#12345</td>
         </tr>
      </tbody>
   </table>
   <div id="message" style="display:none;">reminder  more data to view</div>
</div>

末尾页结构(两种可能)

第一种:

<div id="msgList" class="test">
   <table>
      <tbody>
         <tr>
            <td class="Type">23456</td>
            <td class="Text">enter your input</td>
         </tr>
      </tbody>
   </table>
   <div id="message" style="display:none;">23456 enter your input</div>
</div>

第二种:

<div id="msgList" class="test">
   <table>
      <tbody>
         <tr>
            <td class="Type">reminder</td>
            <td class="Text">66  no more data to view</td>
            <td class="messageNumber">#98765</td>
         </tr>
      </tbody>
   </table>
   <div id="message" style="display:none;">random text</div>
</div>

请问能否通过条件逻辑遍历所有页面,合并各页提取的内容后进行断言?所有页面格式完全一致。


最终实现方案

通过JS函数实现了需求,代码如下(已修正原代码中的语法与逻辑问题):

* def allData = []
* def loopContent =
"""
function() {
    while (true) {
        let list = locateAll('form div', x => { let id = x.attribute('id'); return id ? id.startsWith('line1_R') : false });
        let data = list.map(x => x.text.trim());
        let msgText = script('.Text','_.textContent').trim();

        if (msgText !== "reminder  more data to view"){
            allData.push(data);
            return allData;
        } else if(msgText === "reminder  more data to view"){
            allData.push(data);
            input('body', Key.ENTER);
        } else {
            karate.fail("Content not being looped properly");
        }
    }
}
"""

* def letterContent = loopContent()
* print letterContent

内容的提问来源于stack exchange,提问作者Jackson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 06:37:34