javascript - 赛普拉斯:如何覆盖访问命令以在页面加载后始终尝试关闭弹出窗口?
问题描述
Cypress 覆盖:我想覆盖现有visit
命令,使其仍按原样运行,但会在访问成功执行后尝试关闭弹出窗口。
弹出窗口是我们几乎无法控制的,它会在您登录后出现。看到我们绕过登录屏幕并以编程方式登录,我们将在导航到任何页面时看到弹出窗口。我目前的代码不足:
Cypress.Commands.overwrite('visit', (originalFn, url, options) => {
originalFn(url, options);
cy.get("body").then($body => {
if ($body.find("[text='Got it']").length > 0) {
cy.contains("Got it", { matchCase: false }).click();
}
});
});
谢谢
解决方案
您可以通过覆盖cy.visit()
命令来做到这一点。试试这个:
Cypress.Commands.overwrite('visit', (originalFn, url, options) => {
originalFn(url, options);
// make sure to add a return here!
return cy.get('body').then($body => {
if ($body.find("[text='Got it']").length > 0) {
cy.contains('Got it', { matchCase: false }).click();
}
});
});
来源:https ://docs.cypress.io/api/cypress-api/custom-commands#Overwrite-visit-command
推荐阅读
- r - 如何提取列表中每个组中第一列的最后一行?
- ruby-on-rails - 从外部文本文件中提取特定行的方法?
- visual-studio-code - Visual Studio Code 的 Code Runner 扩展
- python - 如何过滤子项,QTreeView 使用 QSortFilterProxyModel
- arrays - MongoDB对嵌套文档中缺少值的字段进行排序
- ffmpeg - 合并文件时降低视频质量
- python - Flask:使用 POST 方法存储值并使用 GET 方法检索它
- java - 启动应用程序两次或更多次
- python - 如何刷新 PyQt5 中的分组框?
- sql - 如何将查询中的数据与数据列表连接起来?