В AngularJS ngIf
полностью удалит элемент и его потомков из DOM, когда выражение ложно, поэтому использование cy.get().click({force: true})
может оказаться недостаточным.
В этом DOM, <a ui-sref=".parameters" href="#/game/wizard/G_1544166059776_U/edit">
- этокликабельный элемент.
Чтобы выбрать его, вам понадобится селектор, который специфичен для этой вкладки, поскольку на странице есть и другие вкладки, также имеющие href
, и нет отличительных классов или идентификаторов.(AngualrJS добавляет класс ng-scope
ко многим элементам).
См. Эту страницу Атрибут содержит префиксный селектор [name | = ”value”] для синтаксиса выбора по атрибуту и его значения.
Я бы попробовал следующее
cy.get("a[href|='#/game/wizard/G_1544166059776_U/edit']")
.should('be.visible')
.click()
Это будет ждать 5 секунд, пока не появится активируемый элемент.Если этого не произойдет, произойдет сбой с сообщением типа истекло время ожидания, ожидая, что [href] станет видимым .
Если произойдет сбой (длянапример, если activewizmenu != 'parameters'
никогда не становится истинным), то вы все равно можете перейти к цели href согласно этому вопросу Cypress получить атрибут href ,
cy.visit('#/game/wizard/G_1544166059776_U/edit')