首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何添加正则表达式以筛选出Cypress中的xhr URL

如何添加正则表达式以筛选出Cypress中的xhr URL
EN

Stack Overflow用户
提问于 2020-11-11 13:47:36
回答 3查看 4K关注 0票数 2

在我的场景中,我必须处理和验证几乎相等的URL的XHR响应:

代码语言:javascript
复制
URL-1: http://localhost:8080/api/customer/123/acounts
URL-2: http://localhost:8080/api/customer/asfgeras-qwe2-34hg-qwerhngfa

当我在柏树中初始化服务器并按下面的方式提到xhr url时,它总是返回URL-1的响应(在我的情况下,URL-1首先被AUT调用),但是我无法获取URL-2的响应,尽管它在AUT中被调用。

代码语言:javascript
复制
cy.server();
cy.route('GET','**/api/customer/**').as('GETCustomer);

我想捕捉URL-2的响应。请建议这样做的方法(最好是regEx)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-01-25 09:17:28

以上解决方案适用于外卡搜索标准,但不适用于特定的api搜索。使用这样的东西可以帮助您处理请求。

代码语言:javascript
复制
cy.route('GET', /\/api\/customer\/([a-zA-Z0-9]){8}-([a-zA-Z0-9]){4}-([a-zA-Z0-9]){4}-([a-zA-Z0-9]){4}-([a-zA-Z0-9]){1,}$/).as('GETCustomer');
票数 1
EN

Stack Overflow用户

发布于 2020-11-16 18:52:12

Cypress使用最小的程序来过滤URL。因此,您需要指定**/customer/*

  • ** -被称为球星的特性。匹配所有文件和零或多个目录和子目录。如果后面跟着一个/it,则只匹配目录和子目录。要以这种方式工作,它必须是路径部分(例如/myapp/**..js)中唯一的工作方式。
  • * -匹配任何字符串。

资料来源:https://globster.xyz/.

完整代码:

代码语言:javascript
复制
cy.server();
cy.route('GET','**/api/customer/*').as('GETCustomer);
...
cy.wait('@GETCustomer')
  .then((response) => {
     <your handler here>
   });

在这里在线查询

票数 1
EN

Stack Overflow用户

发布于 2021-01-25 17:05:47

不建议使用cy.server()和cy.route(),请参见链接

改用cy.intercept(),info 这里

示例:

代码语言:javascript
复制
cy.intercept('GET', /api\/node1\/node2\/data$/).as('myAlias');

上面的第二个参数是一个随机的REGEX,但是您也可以传递一个字符串。

然后,为了等待异步调用,您必须编写:

代码语言:javascript
复制
cy.wait('@myAlias')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64787691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档