0

为了避免再次发疯,有没有可能得到htmlTemplate这个元素的值呢?

 <rect x="303" y="28" height="53" width="10" htmlTemplate="foo: 115" class="foo"></rect>

我想得到那个号码foo,所以只有115号

4

1 回答 1

1

如果您只想断言该值,foo: 115那么您可以这样做。

cy.get('rect').invoke('attr', 'htmlTemplate').should('equal', 'foo: 115')

现在,如果要提取数字部分,可以执行以下操作:

cy.get('rect')
  .invoke('attr', 'htmlTemplate')
  .then((val) => {
    cy.log(val.split(' ')[1]) //prints 115
    expect(val.split(' ')[1]).to.equal('115')
  })

如果您有多个 rect 并且想要访问第一个可以使用的矩形eq(0)

cy.get('rect').eq(0).invoke('attr', 'htmlTemplate').should('equal', 'foo: 115')

如果要获取所有矩形的值,可以使用each(),例如:

cy.get('rect').each(($ele) => {
  cy.wrap($ele)
    .invoke('attr', 'htmlTemplate')
    .then((val) => {
      cy.log(val.split(' ')[1]) //prints value one by one
    })
})
于 2021-11-24T10:47:00.700 回答