Bird
Raised Fist0
Cypresstesting~5 mins

cy.first(), cy.last(), cy.eq() in Cypress - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does cy.first() do in Cypress?

cy.first() selects the first element from a set of matched elements in the DOM.

Think of it like picking the first apple from a basket.

Click to reveal answer
beginner
How does cy.last() differ from cy.first()?

cy.last() selects the last element from a set of matched elements, while cy.first() selects the first.

Imagine picking the last cookie from a jar instead of the first.

Click to reveal answer
beginner
Explain the purpose of cy.eq(index).

cy.eq(index) selects the element at the given zero-based index from matched elements.

It's like choosing the 3rd book on a shelf by counting from the start.

Click to reveal answer
beginner
What is the index base used by cy.eq()?

cy.eq() uses zero-based indexing, meaning the first element is at index 0.

So, cy.eq(0) is the same as cy.first().

Click to reveal answer
beginner
Why is it useful to use cy.first(), cy.last(), or cy.eq() in tests?

They help you pick a specific element from many, making tests precise and reliable.

Like choosing the exact item you want to check in a list.

Click to reveal answer
What does cy.first() select?
AAn element by index
BThe last element from matched elements
CThe first element from matched elements
DAll elements
Which command selects the last element in a set?
Acy.eq(0)
Bcy.last()
Ccy.eq(-1)
Dcy.first()
What index does cy.eq(2) select?
AThird element
BSecond element
CFirst element
DLast element
If you want the second element, which command is correct?
Acy.eq(2)
Bcy.last()
Ccy.first()
Dcy.eq(1)
Which command is equivalent to cy.eq(0)?
Acy.first()
Bcy.last()
Ccy.eq(1)
Dcy.eq(-1)
Describe how cy.first(), cy.last(), and cy.eq() help in selecting elements during testing.
Think about picking items from a list or basket.
You got /4 concepts.
    Explain zero-based indexing in the context of cy.eq().
    Remember how arrays count in programming.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does cy.first() do in Cypress testing?
      easy
      A. Selects all elements matching a selector
      B. Selects the last element from a group of matched elements
      C. Selects the first element from a group of matched elements
      D. Selects an element by its CSS class

      Solution

      1. Step 1: Understand the purpose of cy.first()

        cy.first() is used to pick the very first element from a list of elements found by a selector.
      2. Step 2: Compare with other options

        Options A, B, and C describe different behaviors: last element, selecting by class, or selecting all elements, which are not what cy.first() does.
      3. Final Answer:

        Selects the first element from a group of matched elements -> Option C
      4. Quick Check:

        cy.first() = first element [OK]
      Hint: Remember: first() picks the very first element [OK]
      Common Mistakes:
      • Confusing first() with last()
      • Thinking first() selects by class or id
      • Assuming first() selects all elements
      2. Which of the following is the correct syntax to select the third element in a list using Cypress?
      easy
      A. cy.get('li').eq(2)
      B. cy.get('li').eq(3)
      C. cy.get('li').first(3)
      D. cy.get('li').last(3)

      Solution

      1. Step 1: Recall zero-based indexing in eq()

        The eq() command uses zero-based index, so the third element is at index 2.
      2. Step 2: Check syntax correctness

        cy.get('li').eq(2) uses eq(2) correctly. Options A, C, and D either use wrong index or invalid syntax.
      3. Final Answer:

        cy.get('li').eq(2) -> Option A
      4. Quick Check:

        Third element index = 2 [OK]
      Hint: Remember eq() uses zero-based index, so third is eq(2) [OK]
      Common Mistakes:
      • Using eq(3) for the third element
      • Trying to pass a number to first() or last()
      • Confusing eq() with first() or last()
      3. Given the following HTML:
      <ul>
        <li>Apple</li>
        <li>Banana</li>
        <li>Cherry</li>
        <li>Date</li>
      </ul>

      What text will cy.get('li').last().invoke('text') return?
      medium
      A. "Cherry"
      B. "Apple"
      C. "Banana"
      D. "Date"

      Solution

      1. Step 1: Identify what cy.last() selects

        cy.last() picks the last element in the matched list, which is the <li> containing "Date".
      2. Step 2: Understand invoke('text')

        This command extracts the text content of the selected element, so it returns "Date".
      3. Final Answer:

        "Date" -> Option D
      4. Quick Check:

        last() element text = "Date" [OK]
      Hint: last() picks last element's text content [OK]
      Common Mistakes:
      • Selecting first element text instead of last
      • Confusing zero-based index with last()
      • Expecting eq(3) to return "Date" without zero-based indexing
      4. Consider this Cypress code snippet:
      cy.get('button').eq(5).click()

      It throws an error: "Cannot read property 'click' of undefined". What is the most likely cause?
      medium
      A. There are fewer than 6 buttons on the page, so eq(5) returns undefined
      B. The syntax of eq() is incorrect; it should be eq[5]
      C. click() cannot be chained after eq()
      D. The selector 'button' is invalid

      Solution

      1. Step 1: Understand eq() index and element count

        eq(5) tries to select the 6th element (index 5). If fewer than 6 buttons exist, it returns undefined.
      2. Step 2: Analyze error message

        The error "Cannot read property 'click' of undefined" means the element does not exist, so click() fails.
      3. Final Answer:

        There are fewer than 6 buttons on the page, so eq(5) returns undefined -> Option A
      4. Quick Check:

        Index out of range = undefined element [OK]
      Hint: Check element count before using eq(index) [OK]
      Common Mistakes:
      • Using wrong eq() syntax
      • Assuming click() can't chain after eq()
      • Ignoring zero-based index causing out-of-range
      5. You want to click the second-to-last item in a list of elements matched by cy.get('.item'). Which Cypress command chain correctly achieves this?
      hard
      A. cy.get('.item').eq(cy.get('.item').its('length').then(len => len - 2)).click()
      B. cy.get('.item').eq(-2).click()
      C. cy.get('.item').eq(-1).click({ force: true })
      D. cy.get('.item').eq(cy.get('.item').length - 2).click()

      Solution

      1. Step 1: Recall eq() indexing in Cypress

        Cypress eq(n) supports negative indices: eq(-1) is last, eq(-2) is second-to-last.
      2. Step 2: Compare options

        Options A and B have invalid syntax passing chainables to eq(). cy.get('.item').eq(-1).click({ force: true }) uses eq(-1) for last item. cy.get('.item').eq(-2).click() correctly uses eq(-2).
      3. Final Answer:

        cy.get('.item').eq(-2).click() -> Option B
      4. Quick Check:

        eq(-2) = second-to-last [OK]
      Hint: eq() supports negative indices: -2 for second-to-last [OK]
      Common Mistakes:
      • Using negative index in eq() incorrectly (e.g., -1 instead of -2)
      • Trying to subtract length directly without .then()
      • Passing Cypress chainable as eq() argument
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard