#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')