Cypress,获取属性的数值
Cypress, get the numeric value of an attribute
为了避免再次发疯,是否可以得到这个元素的htmlTemplate
的值?
<rect x="303" y="28" height="53" width="10" htmlTemplate="foo: 115" class="foo"></rect>
我想得到那个 foo
的号码,所以只有号码 115
如果您只想声明值 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')
})
如果你有多个矩形并且你想访问第一个,你可以使用 eq(0)
cy.get('rect').eq(0).invoke('attr', 'htmlTemplate').should('equal', 'foo: 115')
如果你想得到所有rects的值,你可以使用each()
,像这样:
cy.get('rect').each(($ele) => {
cy.wrap($ele)
.invoke('attr', 'htmlTemplate')
.then((val) => {
cy.log(val.split(' ')[1]) //prints value one by one
})
})
为了避免再次发疯,是否可以得到这个元素的htmlTemplate
的值?
<rect x="303" y="28" height="53" width="10" htmlTemplate="foo: 115" class="foo"></rect>
我想得到那个 foo
的号码,所以只有号码 115
如果您只想声明值 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')
})
如果你有多个矩形并且你想访问第一个,你可以使用 eq(0)
cy.get('rect').eq(0).invoke('attr', 'htmlTemplate').should('equal', 'foo: 115')
如果你想得到所有rects的值,你可以使用each()
,像这样:
cy.get('rect').each(($ele) => {
cy.wrap($ele)
.invoke('attr', 'htmlTemplate')
.then((val) => {
cy.log(val.split(' ')[1]) //prints value one by one
})
})