Scenario: I am trying to access an element with id "popin_tc_privacy_button_2" but cypress throws the error "Timed out retrying after 120000ms: Expected to find element: #popin_tc_privacy_button_2, but never found it." Though I am manually able to locate the element during the cypress run.
Note: This button is present inside a popup modal (popping up in the same page no new tab or navigation involved).
** Parent Element inside the body **
<div id="tc-privacy-wrapper" class="tc-privacy-wrapper tc-privacy-override">
<div id="popin_tc_privacy" class="tc-reset-css tc-privacy-banner tc-privacy-popin tc-privacy-mid" aria-describedby="description" role="dialog" aria-modal="true" style="top: 42.5px; left: 980px;">
<div id="popin_tc_privacy_container_text" class="tc-reset-css tc-privacy-block-text">
<div id="popin_tc_privacy_text" class="tc-reset-css tc-privacy-text">
<p style="font-size: 12px;"> **** <a class="info" href="****" type="button">Informativa privacy</a></p>
<p id="rifiutabtn" style="text-align: center; display: block; position: absolute; bottom: 0; left: 0; width: 100%; margin-bottom: 30px; font-weight: bold; font-size: 12px;" align="center"></p>
</div>
</div>
<div id="popin_tc_privacy_container_button" class="tc-reset-css tc-privacy-block-button">
<button id="popin_tc_privacy_button" class="tc-reset-css tc-privacy-button" type="button" title="Impostazioni dei cookies">Impostazioni dei cookies</button>
<button id="popin_tc_privacy_button_2" class="tc-reset-css tc-privacy-button" type="button" title="Accetta tutti i cookies">Accetta tutti i cookies</button>
<button id="popin_tc_privacy_button_3" class="tc-reset-css tc-privacy-button" type="button" title="Rifiuta tutti i cookies">Rifiuta tutti i cookies</button></div>
<div id="popin_tc_privacy_btn_close" class="tc-reset-css tc-privacy-button-close"><img id="tc_privacy_close" width="20" height="20" title="" alt="" src="***"></div>
</div>
</div>
Element:
<button id="popin_tc_privacy_button_2"
class="tc-reset-css tc-privacy-button" type="button"
title="Accetta tutti i cookies">Accetta tutti i cookies</button>
Xpath: /html/body/div[4]/div/div[2]
selector : #popin_tc_privacy_button_2
Solutions Tried:
cy.wait()
cy.get("#popin_tc_privacy_button_2",{withinSubject:null, includeShadowDom:true, timeout: 120000}).click()
cy.wrap(window.top.document.querySelector('button[id="popin_tc_privacy_button_2"]')).click({ force: true })
- Tried intercepting the api call related to the modal -
cy.intercept('POST', "****", (req) => { cy.get("#popin_tc_privacy_button_2",{withinSubject:null, includeShadowDom:true, timeout: 120000}).click() })
Cypress: 12.9.0 Browser: Chrome/Edge
Expectation: Cypress to identify the element in the modal.