Кипарис, получите числовое значение атрибута

#testing #cypress #e2e-testing #angular-e2e #e2e

Вопрос:

Чтобы снова не сойти с ума, можно ли получить значение htmlTemplate этого элемента?

 lt;rect x="303" y="28" height="53" width="10" htmlTemplate="foo: 115" class="foo"gt;lt;/rectgt;  

Я хотел бы получить номер этого foo , так что просто номер 115

Ответ №1:

Если вы просто хотите утвердить значение foo: 115 , вы можете это сделать.

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

Теперь, если вы хотите извлечь числовую часть, вы можете сделать что-то вроде этого:

 cy.get('rect')  .invoke('attr', 'htmlTemplate')  .then((val) =gt; {  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')  

Если вы хотите получить значение всех прямых, вы можете использовать each() что-то вроде:

 cy.get('rect').each(($ele) =gt; {  cy.wrap($ele)  .invoke('attr', 'htmlTemplate')  .then((val) =gt; {  cy.log(val.split(' ')[1]) //prints value one by one  }) })  

Комментарии:

1. если у меня больше одной прямой кишки, мне понадобится только первая, которую он найдет, верно? если я хочу взять их все, могу ли я их прокатить?

2. Обновлен ответ