如何在Cypress中编写动态定位代码?基于div ID定位文本元素
在Cypress中基于动态ID定位文本元素的实现
根据你提供的HTML结构和需求,这里是正确的Cypress代码实现:
核心函数实现
getText(divID) { // 动态拼接ID选择器,定位目标div,再查找内部的p元素并处理文本 return cy.get(`#${divID}`) .find('p') .invoke('text') .then(text => text.trim()); }
代码说明
#${divID}:通过模板字符串动态生成ID选择器,精准定位传入的divID对应的元素(比如传入Test1就会定位#Test1).find('p'):定位目标div内部的p标签(如果你的实际场景中p元素有特定标识,比如HTML里的text="One"属性,可以改成find('p[text="One"]')来进一步缩小范围).invoke('text'):调用jQuery的text()方法获取元素的文本内容.then(text => text.trim()):去除文本前后的空白字符,适配HTML里文本带空格的情况
调用示例
// 传入Test1获取对应文本并断言 this.getText('Test1').then(text => { expect(text).to.equal('One'); }); // 传入Test2同理 this.getText('Test2').then(text => { expect(text).to.equal('One'); });
内容的提问来源于stack exchange,提问作者MVLS
相关产品推荐
相关产品推荐

