Cypress中如何将弹窗引用值存入变量并在搜索页复用?
解决Cypress中别名引用值的搜索问题
你的问题出在Cypress别名的使用方式上,直接在type()里写@reference只会把字符串@reference输入到搜索框,而不是获取别名存储的实际引用值。下面是两种正确的实现方式:
方法1:使用函数回调访问别名
// 存储引用值到别名 cy.get('#referane_name').invoke('text').as('reference') // 跳转回搜索页的步骤 cy.get('#search_field').type(function() { // 普通function的this指向Cypress上下文,可直接访问别名 return this.reference.trim() // 建议trim去除文本前后多余空格 })
方法2:通过.then()链式传递值
如果之前用.then()出错,大概率是没有在回调内正确串联操作。正确写法如下:
cy.get('#referane_name').invoke('text').then((reference) => { // 可选:将值存入别名供后续其他步骤调用 cy.wrap(reference.trim()).as('reference') // 执行跳转回搜索页的操作(示例步骤,根据实际页面调整) cy.get('#back-to-search-btn').click() // 直接使用获取到的reference值执行搜索 cy.get('#search_field').type(reference.trim()) })
关键注意点
- 检查元素选择器
#referane_name是否拼写正确(代码里疑似reference的笔误) - 获取文本后用
trim()处理,避免因空格导致搜索匹配失败 - 使用
this.reference时,必须用普通function作为回调,不能用箭头函数(箭头函数会改变this指向)
内容的提问来源于stack exchange,提问作者James Dudley
相关产品推荐
相关产品推荐

