如何在Cypress中定位上传文件后新生成的递增ID查看按钮?
在Cypress中定位动态递增ID的新生成查看按钮
针对这种ID按数字递增的动态按钮,有几种实用的定位方式,不用硬写固定ID:
按文本+位置定位
直接通过按钮的文本(比如“查看”)结合last()方法,选中列表里最后一个(也就是最新生成的)按钮:cy.contains('查看').last().should('be.visible')如果页面里有多个相同文本的按钮,可结合父容器缩小范围,比如表格行:
cy.get('#ctl00_ContentPlaceHolder1_gvScannedDocuments tr').last().find('button').should('contain', '查看')用属性前缀/后缀匹配ID
利用ID的固定前缀和后缀,用属性选择器匹配所有符合规则的按钮,再取最后一个:// 匹配ID以指定前缀开头、以_btnView结尾的按钮 cy.get('[id^="ctl00_ContentPlaceHolder1_gvScannedDocuments_ctl"]').filter('[id$="_btnView"]').last()对比上传前后的按钮数量
先记录上传前的按钮总数,上传后断言数量增加,再选中新增的那个:// 上传前记录初始按钮数 cy.get('[id$="_btnView"]').its('length').as('initialBtnCount') // 执行文件上传操作(替换成你的上传按钮选择器) cy.get('上传按钮的选择器').click() // 找到新增的按钮 cy.get('[id$="_btnView"]').should('have.length', this.initialBtnCount + 1).last()基于动态加载状态定位
如果新按钮是异步加载的,可结合可见性断言确保元素加载完成,再选中最后一个:cy.get('[id$="_btnView"]').should('be.visible').last()
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

