使用 Cypress IO 将 URI 或响应中返回的值保存到测试上下文中



我想为在 URI 和 xhr 响应中返回的键创建一个变量。 我尝试了 URI 的路线,因为这似乎是最简单的,但不确定如何告诉它只保存 URI 的一部分,而不是整个值。

.url().then(($url) => {
const moveKey = $url.text(/someString.+?(?=/)/);
cy.log(moveKey);
})  

我也尝试使用cy.routecy.wait,但等待总是超时。

cy.server()
.route('/overview').as('getMove')
.wait('@getMove').then((xhr) => {
const moveKey = xhr.move.key;
})

网址 = https://app.com/move/xxxxxx/overview

这不是赛普拉斯的问题。它需要 JavaScript 字符串上的 lil 概念。请使用下面的代码片段,它根据要求工作。

it('test', ()=>{
cy.url().then(fullURL=>{
fullURL = 'https://app.com/move/xxxxxx/overview';
let arr = fullURL.substr(fullURL.indexOf('move')).split('/');
let moveKey = arr[1];
cy.log(moveKey);
}
)})

感谢@Srinu Kodi的建议,我能够使用match解决这个问题。

.url().then(($url) => {
const moveKey = $url.match(/someString.+?(?=/)/);
cy.log(moveKey);
})  

日志输出一个带有我需要的键的数组。 谢谢大家的帮助!

最新更新