在某些情况下,我需要测试通过网站上的活动生成的按钮(制作游戏会在其主页上创建一个按钮)。这些按钮应将用户带到他们的游戏门户。
按钮包含在.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()?
答案 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()