我有一个 dom 元素,其中包含我想访问的字符串或 url。为了便于引用,我用数据属性标记了 dom 元素。
上面以粗体显示“Create Topic”的地方是字符串,在控制台中,您可以看到它有一个 data-test='topicUrl
属性。
我想捕获这个字符串值,以便稍后访问该 url。
我关注了the docs on Variables and Aliases并尝试过
cy.get('[data-test="topicUrl"]').invoke('text').as('Url')
这样我就可以使用
访问该页面cy.visit(this.Url)
但这不起作用,它会在控制台中出现 TypeError: Cannot read property 'Url' of undefined
错误。
如何抓取 DOM 元素中的文本,以便稍后可以使用它访问 url?
最佳答案
您可以将其缓存到一个变量中并发出 cy.visit
在回调中确保填充变量:
let url;
cy.get('[data-test="topicUrl"]').invoke('text')
.then( value => {
url = value;
});
cy.then(() => {
return cy.visit(url);
});
使用 cy.then()
直接(而不是将其与另一个命令链接起来)没有记录在案,将来可能会在 cy.resolve( promise )
时删除。已实现。
也许使用cy.wrap().then(() => {})
会更好哪个应该永远有效(?)。
(完全靠内存,所以让我知道它是否不起作用,我会在有机会运行它时进行更新。)
关于testing - 获取一个字符串以用于 cypress 中的 .visit() 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49483464/