I am new to Cypress and some of the things that I expect to work have really weird issues.
For example, I am trying to get the value of a column in a table and use the value in a search input. I have done it like this:

```
it('should filter', () => {
    let id = 0;

    cy.get('[data-cy=data-table-row]').should('have.length', 25);

    cy.get('[data-cy=data-table-row]:nth-child(1) > .cdk-column-id').should(($div1) => {
        id = $div1.text();
        expect(id).not.to.eq(0);
    });

    //expect(id).not.to.eq(0);

    cy.get('[data-cy=table-filters-search]').find('input').type(id);

    cy.get('[data-cy=data-table-row]').should('have.length', 1);

    cy.get('[data-cy=data-table-row]:nth-child(1) > .cdk-column-id').should(($div1) => {
        expect(id).to.eq($div1.text());
    });
});

```

But when I run this, I get an error stating that **[data-cy=data-table-row] has a length of 25 not 1**.
It turns out that the id variable I am using is not accessible outside the **should** method. I assume that's because it is a promise.

If I try to do this:

```
it('should filter', () => {
    let id = 0;

    cy.get('[data-cy=data-table-row]').should('have.length', 25);

    cy.get('[data-cy=data-table-row]:nth-child(1) > .cdk-column-id').should(($div1) => {
        id = $div1.text();
        expect(id).not.to.eq(0);

        cy.get('[data-cy=table-filters-search]').find('input').type(id);

        cy.get('[data-cy=data-table-row]').should('have.length', 1);

        cy.get('[data-cy=data-table-row]:nth-child(1) > .cdk-column-id').should(($div1) => {
            expect(id).to.eq($div1.text());
        });
    });
});

```

The test goes mental and tries to get the `[data-cy=table-filters-search]` over and over and over again.
I am not sure why.

Is there an easier way to grab the innerText of a div and store it to compare later?

---

As someone gave a response, I tried this:

```
it('should filter', () => {
    let variables = {};

    cy.get('[data-cy=data-table-row]').should('have.length', 25);

    cy.get('[data-cy=data-table-row]:nth-child(1) > .cdk-column-id').then(($div1) => {
        variables.id = $div1.text();
        expect(variables.id).not.to.be.undefined;
    });

    console.log(variables);

    expect(variables.id).not.to.be.undefined;
    cy.get('[data-cy=table-filters-search]').find('input').type(variables.id);

    cy.get('[data-cy=data-table-row]').should('have.length', 1);

    cy.get('[data-cy=data-table-row]:nth-child(1) > .cdk-column-id').then(($div1) => {
        expect(variables.id).to.eq($div1.text());
    });
});

```

But the test fails on the second `expect(variables.id).not.to.be.undefined;`