如何遍历表并从一行中提取值并与数据表进行比较

时间:2019-07-17 14:14:26

标签: javascript cypress

我正在尝试填写表格并保存详细信息,然后将相同的详细信息显示在表格行中。我需要遍历表行并从该行中提取所有值(Value1,Value2,Value3),然后与输入值进行比较。如何使用赛普拉斯。

#This will capture anything between = and EOL
my ($data) = /secret=(.*)$/;

#This will capture alphanumeric characters + underscore
my ($data) = /secret=(\w)$/;

#This will capture alphanumeric characters
my ($data) = /secret=([a-zA-Z0-9])$/;

1 个答案:

答案 0 :(得分:1)

您需要遍历td元素并提取文本内容。由于我使用.find('td')可以找到所有的td元素,因此可以使用.each()一步一步地遍历它们,选择所需的元素(在这种情况下,我将跳过索引为0的元素因为它只是一个空字符串):

let values = []
cy.visit('stackoverflow/table.html')
cy.get('tbody > tr')
  .find('td')
  .each(($el, $index) => {
     cy.wrap($el)
      .invoke('text')
      .then(text => {
          if($index!==0)
            values.push(text.trim())
          })
       })
      .then(() => expect(values).to.deep.eq(["Value1", "Value2", "Value3"]))