javascriptscrollcypressintegration-testing

Get the very last row in a table, although it isn't scrolled into current sight


I have a table which contains many rows. Only the nth-oldest rows are visible. The newer rows are hidden and one has got to use a scrollbar to move them into sight.

I have written the following Cypress-statement:

cy.get("span.class1.class2").last().click();

It returns the last row, which is visible, when the view becomes shown. Marked red in the screenshot.

enter image description here

But what I like to have is the very last row in the table. Marked blue.

enter image description here

Is that possible with a simple Cypress-statement?

Or do I have to move the scrollbar down first? If so: How can I scroll downwards using Cypress?


Solution

  • Get the parent class of that table and you could try using scrollTo()option.

    cypress documentation: https://docs.cypress.io/api/commands/scrollto.html#Syntax

    Examples:

    cy.scrollTo(0, 500)                     // Scroll the window 500px down
    cy.get('.sidebar').scrollTo('bottom')   // Scroll 'sidebar' to its bottom
    

    There is another option called .scrollIntoView(), but I think in your cases the scrollTo() might help.