You could try to find an "a" element within your "li" element and check it's href attribute and inner text.
cy.get(selector)
.find("a")
.should("have.attr", "href", "/path")
.should("have.text", "Alcohol Anonymous");
Check out this blog post from the cypress team. They explain all the different ways you can test links with cypress
https://www.cypress.io/blog/2020/12/10/testing-the-anchor-links/
scroll down to the Checking every link section which is what I think you want
@GustavoCesário is correct, you must target the page section containing the links.
If you try cy.get('a') you will pick up the logo, the navigation menu, etc but that's not what you want to test.
Also, for full text you want <li> not <a>.
const expectedParagraphs = [
'Alcohol Anonymous is a free support group that offers help for anyone choosing to stop drinking.',
'Cancer Research provides information on how alcohol affects your risk of the disease.',
'Carers Trust gives help to people who are affected by someone else’s drinking.',
...
]
beforeEach(() => {
cy.visit('https://www.drinkiq.com/en-gb/get-help/');
})
it('checks the list texts', () => {
cy.get('main')
.find('li')
.each(($li, i) => {
const paragraph = $li.text()
expect(paragraph).to.eq(expectedParagraphs[i])
})
})