Второе: используйте это
с, как указано в заголовке, т. Е. Для доступа к элементу, родитель которого скрыт. Проблема в том, что согласноcypress.io docs :
Элемент считаетсяскрытый если:
Его ширина или высота равна 0.Свойство CSS (или его предки) - видимость: скрыто.Свойство CSS (или его предки) - display: none.Его CSS-свойство является position: fixed, оно за кадром или скрыто.Но код, с которым я работаю, требует от меня нажатия на элемент,родитель скрыт, а сам элемент виден.
Поэтому каждый раз, когда я пытаюсь нажать на элемент, появляется сообщение об ошибке:
CypressError: Тайм-аут повторной попытки: ожидается, что «<mdc-select-item # mdc-select-item-4.mdc-list-item>» будет «видимым»
Этот элемент <mdc-select-item # mdc-select-item-4.mdc-list-item> невидим, поскольку его родительский элемент <mdc-select-menu.mdc-simple-menu.mdc-select__menu> ' имеет свойство CSS: 'display: none'
Элемент, с которым я работаю, этоdropdown item
, который написан вpug
, Элемент является компонентом, определенным вУгловой-MDC-веб, который используетmdc-select
для выпадающего меню иmdc-select-item
для его элементов (предметов), к которым я должен получить доступ.
Пример кода похожей структуры:
//pug
mdc-select(placeholder="installation type"
'[closeOnScroll]'="true")
mdc-select-item(value="false") ITEM1
mdc-select-item(value="true") ITEM2
В приведенном вышеITEM1
это элемент, к которому я должен получить доступ. Это я делаю вcypress.io
следующее :
//cypress.io
// click on the dropdown menu to show the dropdown (items)
cy.get("mdc-select").contains("installation type").click();
// try to access ITEM1
cy.get('mdc-select-item').contains("ITEM1").should('be.visible').click();
Пробовал с{force:true}
заставить предмет щелкнуть, но не повезло. Пытался выбрать элементы, используя{enter}
нажатие на родителяmdc-select
, но опять же не повезло, как бросает
CypressError: cy.type () может быть вызван только для textarea или: text. Ваша тема: <mdc-select-label class = "mdc-select__selected-text"> Select ... </ mdc-select-label>
Также пытался использоватьselect
команда, но это невозможно, потому что движок Cypress не может идентифицировать элемент какselect
элемент (потому что его нет, внутренняя работа отличается). Это бросает:
CypressError: cy.select () может быть вызван только для a. Ваша тема: <mdc-select-label class = "mdc-select__selected-text"> Select ... </ mdc-select-label>
проблема это то, чтоmdc-select-menu
это родитель дляmdc-select-item
имеет свойствоdisplay:none
по некоторым внутренним вычислениям при открытии выпадающих пунктов.
Это свойство перезаписывается наdisplay:flex
, но это не помогает.
Все из идей. Это работает вSelenium
, но не сcypress.io
, Любая подсказка, что может быть возможным взломом для ситуации, кроме перехода на другие платформы или изменения кода пользовательского интерфейса?