Mam przypadek, w którym muszę przetestować przyciski generowane przez aktywność na stronie (dzięki czemu gra tworzy przycisk na swojej stronie głównej). Te przyciski powinny podjąć użytkownika do swojego portalu gry.

Przyciski znajdują się w obrębie.

Najpierw próbowałem kliknąć przycisk NTH w. - Przycisk przy użyciu:

    it('selects the 3rd game in the sidebar', () => {
    cy.get('.sidebar--button').eq(2).click()
    cy.wait(1000)
    cy.url()
        .should('include', 'portal')

Nie powiodło się, ponieważ nie mogę użyć .eq, aby kliknąć element.

Potem próbowałem użyć

it('deletes the current game', () => {
    cy.get('.sidebar--button').should('have.length', 1)
    cy.get('.sidebar--button').within((".sidebar--button") => {
        cy.get('.button').click()
    })
    cy.wait(1000)
    cy.url()
        .should('include', 'portal')

Nie powiodło się również.

Jak mogę CY.GET ("NTH przycisk"). Kliknij () tylko przyciski zawarte w. - Przycisk?

0
J.Long 22 luty 2019, 22:20

2 odpowiedzi

Najlepsza odpowiedź

Możesz użyć do tego selektorów CSS. Na przykład, jeśli masz taki scenariusz taki jak ten .parent>.child*4>button możesz uzyskać dostęp do trzeciego elementu przez .parent:nth-child(3) button. Aby uzyskać bardziej dokładny selektor CSS, muszę znać strukturę HTML.

----- Edytowany -----

Selektor roboczy dla tego przypadku .sidebar--button:nth-child(3) .button.

1
Przemyslaw Jan Beigert 26 luty 2019, 08:38

Czy ten przycisk ma inny tekst? Jeśli tak, użyj

cy.get('.sidebar--button').contains('whatever the text is').click()
0
wizzup 27 luty 2019, 12:03