#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. Обновлен ответ