Не удается прочитать innerHTML из элемента shadowRoot в Cypress

#javascript #cypress

Вопрос:

Я пытаюсь прочитать свойство value (innerHTML/innerText) элемента, используя следующее, но получаю пустую строку. cy.get('#INGLoanRequests-container').shadow().find(Selectors.postCode).invoke('val').then(value => { console.log("post code is " value) })

где почтовый индекс-это просто css-селектор. Проверив консоль, я вижу введите описание изображения здесь

это означает, что элемент найден, но значение не считывается. Но в инструментах разработки firefox я могу получить доступ к значению темы, вот так. введите описание изображения здесь

Будьте добры, если кто-нибудь заметит, что я здесь делаю не так, это было бы здорово.

Ответ №1:

Чтобы получить значение innerHTML, вы должны использовать .invoke('text')

 cy.get('#INGLoanRequests-container').shadow().find(Selectors.postCode).invoke('text').then(value => {
    console.log("post code is "   value)
})
 

Ответ №2:

На самом деле ты хочешь

  • .invoke('html') получить .innerHTML
  • .invoke('text') получить .innerText
  • .invoke('val') чтобы получить свойство value объекта <input>