赛普拉斯主题内的获取按钮

时间:2019-02-22 19:20:28

标签: javascript testing cypress

在某些情况下,我需要测试通过网站上的活动生成的按钮(制作游戏会在其主页上创建一个按钮)。这些按钮应将用户带到他们的游戏门户。

按钮包含在.sidebar--button主题内,从上到下列出。

首先,我尝试通过以下方式单击.sidebar--button中的第n个按钮:

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

此操作失败,因为我无法使用.eq来单击元素。

然后我尝试使用.within在.sidebar--button中使用以下命令选择一个生成的按钮:

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')

这也失败了。

如何仅使用.sidebar--button中包含的按钮cy.get('nth button')。click()?

2 个答案:

答案 0 :(得分:0)

您可以使用该CSS选择器。例如,如果您有类似.parent>.child*4>button这样的场景,则可以通过.parent:nth-child(3) button访问第三个元素。对于更精确的CSS选择器,我必须知道html结构。

-----编辑-----

在这种情况下.sidebar--button:nth-child(3) .button的工作选择器。

答案 1 :(得分:0)

此按钮有不同的文字吗?如果是,则使用

cy.get('.sidebar--button').contains('whatever the text is').click()