Cypress: элемент не найден внутри cypress

#angularjs #iframe #automated-tests #mocha.js #cypress

#angularjs #iframe #автоматизированные тесты #mocha.js #cypress

Вопрос:

Содержимое находится внутри iframe:

  it.only('should verify xyz tooltips',()=>{
    cy.visit('/');
    cy.get('a[ng-reflect-router-link="abc"]').click();
   
    cy.wait(9000)
    cy.get('iframe')
    .then( ($iframe) => {
        const $body = $iframe.contents().find('body')
        cy.wrap($body).find('.content').invoke('attr','style', 'overflow: visible')

        //upto here it is working fine

        cy.wrap($body).find('div.visTooltip').invoke('attr','style', 'visibility: 
         visible').invoke('attr','style', 'overflow: visible')
        
        //Below statement is not working
         cy.wrap($body).find('div.visTooltip > table.visTooltip__table').should('have.length',1)
                  
    })
});
  

HTML страницы, которая не работает

введите описание изображения здесь

Я успешно могу найти до тега div, используя cy.wrap($body).find('div.visTooltip') , но после этого код не находит таблицу внутри тега div. Я попытался настроить видимость свойств css и переполнение на видимое, но ничего не работает. Может кто-нибудь, пожалуйста, посмотрите и предложите что-нибудь?

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

1. Вы пробовали cy.wait() использовать ожидание загрузки html?

2. да, я тоже это пробовал. Не повезло!@ Jboucly

3. Я продолжаю сталкиваться с подобными проблемами с Cypress. Он просто не может найти элементы, которые явно присутствуют. Это продолжает происходить непредсказуемыми способами, я сильно склоняюсь к мнению, что Cypress слишком ненадежен.

Ответ №1:

Вы пробовали пример cypress о том, как использовать find? https://docs.cypress.io/api/commands/find.html#Syntax

Пример из ссылки выше

Получить li внутри родительского элемента

 <ul id="parent">
  <li class="first"></li>
  <li class="second"></li>
</ul>
  
 // yields [<li class="first"></li>, <li class="second"></li>]
cy.get('#parent').find('li')