Search code examples
javascriptautomationmocha.jscypress

Page doesn't load within the second 'it' block for the click action


It works fine for the same click event if I've coded within the single 'it' block as below.

Working code:

describe('Test Suite', () => {
    it('Test case 1', () => {
        //Test 1
        //Test 2
    })
})

Not working:

describe('Test Suite', () => {
    it('Test case 1', () => {
        //Test 1
    })
    it('Test case 2', () => {
        //Test 2
    })
})

Below is my code snippet, First 'it' block works fine after login method executes. Then second it blocks just clicking the right element but the page never loads.

If I write the code under the single 'it' block, Page loads and works fine.

describe('Fund Manager Suite', () => {

    //Checking Fund Manager page loading 
   before(() => {

    cy.visit('xxxxxxxxxxxxx')
    cy.login('xxxxx', 'xxxxx')

   })
   
   it('fund manager navigation works', () => {
    cy.location('pathname').should('equal', '/xxxxx')
    cy.get('#appSwitcher').click()

    cy.get('#appSwitcher > .dropdown > .dropdown-menu > :nth-child(2) > a').click()
    cy.location('pathname').should('equal', '/xxxxx')
    cy.get('.k-grid-table').find('tr').should('have.length', 5)
   })

   it('fund detail works', () => {
    cy.get('.product > :nth-child(2)').click()
    cy.location('pathname').should('equal', '/xxxxx')

    // Fund Detail - Search
    cy.get('#s2id_autogen31').type('Rach')
    cy.get('#select2-result-label-32').click()
    cy.get('#searchSubmit').click()
    cy.get('#DataTables_Table_0').find('tr').should('have.length', 10)
       
   })

}) 

Execution Screen shot
Code snippet screen shot


Solution

  • Update:

    Able to resolve this issue by storing the session_id.

    Cypress.Cookies.defaults({
      preserve: "session_id"
    })