我正在启动和运行Cypress。我想让赛普拉斯直接调用我的一些函数来检查它们的输出。
虽然在我的测试中,我似乎无法获得对角度的引用。我看到了一些有关在全局窗口对象中添加自定义“角度”属性的信息,但我似乎仍然无法弄清楚。
https://github.com/cypress-io/cypress/issues/3068#issuecomment-454109519
基于上面的示例,我将如何创建一个自定义属性,以便可以在Cypress中获得角度对象?
答案 0 :(得分:3)
在index.d.ts
中使用以下内容创建一个cypress/support
(例如,添加一个名为ng
的属性):
interface Window {
ng: {
probe: typeof import("@angular/platform-browser/src/dom/debug/ng_probe").inspectNativeElement
// // un-comment if you need these for some reason:
// ɵcompilerFacade: import("@angular/compiler/src/jit_compiler_facade").CompilerFacadeImpl
// coreTokens: {
// ApplicationRef: import("@angular/core").ApplicationRef
// NgZone: import("@angular/core").NgZone
// }
}
}
那么您应该可以使用:
cy.get('.some-ng-element').then(($el) => {
const el = $el[0] // get the DOM element from the jquery element
const win = el.ownerDocument.defaultView // get the window from the DOM element
const component = win.ng.probe(el).componentInstance
})