获取 table 中的项目列表

Get the list of items in table

这是关于机器人框架脚本的。

我想获取“型号名称”列中的项目,然后验证用户点击列 header 以正确排序项目。

如何获取项目列表?这些项目位于 <span class=""> 中,示例 HTML 如下:

screenshot

<tr data-row-key="254104e218ea47f9879a270a3b688da3"
    class="ant-table-row ant-table-row-level-0">
<td class="ant-table-cell ant-table-row-expand-icon-cell">
    <button type="button"
            class="ant-table-row-expand-icon ant-table-row-expand-icon-collapsed"
            aria-label="Expand row">
    </button>
</td>
<td class="ant-table-cell ant-table-column-sort">
    <span><span class="">autotestmodel-0844-v1-8k</span></span>
</td>
...
</tr>

您可以在每行中第 2 个 <td> 元素内的“第 n 个”子元素上尝试 CSS 选择器。

document.querySelectorAll('table tr td:nth-child(2)');

这将使您遍历每个 <td> 元素,该元素位于其 <tr> 容器中的第二位,以及 return 所有相关单元格的节点列表。 在此节点列表上,您可以根据需要迭代和使用内部文本。

document.querySelectorAll('table tr td:nth-child(2)').forEach( item => {
  // do whatever you want with each node's text
  console.log(item.innerText);
})

使用选择器 table tr td:nth-child(2) 与 table 互动 获取每个元素然后将其附加到列表中。

*** Settings ***
Library  Browser
Library  String
Library  Collections
Resource            ../Resources/BrowserFunctions.robot
Suite Setup         Start New Browser
Suite Teardown      Close Browser



*** Test Cases ***
001-Models
    Open New Page To Server
    Navigate To Models Module

   ${elements} =    Get Elements    table tr td:nth-child(2)
   FOR   ${elem}   IN   @{elements}
      ${text}=    Get Text    ${elem}
      Log To Console    Model is:${text}
    END

要将所有值附加到列表中:

    ${elements} =    Get Elements    table tr td:nth-child(2)
    ${LexiconList}=    Create List
    FOR    ${elem}    IN    @{elements}
    ${text}=    Get Text    ${elem}
    ${new elem}=     Set Variable    ${text}
    Append To List    ${LexiconList}    ${new elem}
    END
    Log To Console    Lexicon List is: ${LexiconList}