【问题标题】:How do you get the td values in each iteration of tr?如何在 tr 的每次迭代中获得 td 值?
【发布时间】:2020-10-20 06:33:09
【问题描述】:

这是我需要迭代的下表。

<tbody>
    <tr>
        <td>1</td>
        <td>Thomas Hill</td>
        <td>4</td
    </tr>
    <tr>
        <td>2</td>
        <td>Greg Hill</td>
        <td>39</td
    </tr>
    <tr>
        <td>3</td>
        <td>Jane Hill</td>
        <td>31</td
    </tr>
</tbody>

我正在尝试获取第一个 td 并像这样对其进行编码。

let values = []
cy.get('tbody > tr')
  .find('td')
  .each(($el, $index) => {
     cy.wrap($el)
      .invoke('text')
      .then(num => {
          if($index!==0)
            values.push(num)
          })
       })

在搜索它时,数组没有任何价值。我只想在每一行中获取第一个 TD 的值。

【问题讨论】:

  • 你能在each()里面试试cy.log($el.text()),然后告诉我输出是什么。
  • 只有一行。
  • 您能否将定位器更改为cy.get('tbody &gt; tr &gt; td') 并删除find()。然后使用cy.log($el.text()) 告诉我你得到了什么。从每个中删除所有其他内容。
  • 所有行及其 tds
  • 所以你会得到类似 1 2 3 的东西。这是要你在数组中吗?

标签: reactjs cypress autotest


【解决方案1】:

您说您尝试调用每行的第一个 Td 值,但您正在调用一个获取代码中每个 Td 的命令。这是我的建议

let values = []
cy.get('tbody > tr')
    .each(($el) => {
        cy.wrap($el)
            .find('td')
            .first()
            .invoke('text')
            .then(num => {
                values.push(num)
            })
    })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多