Javascript 有没有办法使自定义命令在命名空间或Cypress中的对象中可用?

Javascript 有没有办法使自定义命令在命名空间或Cypress中的对象中可用?,javascript,typescript,cypress,Javascript,Typescript,Cypress,我有一个typescript项目,其中很少有“Cypress自定义命令”执行如下导航: Cypress.Commands.add('goToHome', () => { /* Logic here */ }); Cypress.Commands.add('goToProducts', () => { /* Logic here */ }); 现在。我可以像这样运行这些命令:cy.goToHome() 但是,我希望这些命令不是可以从cy对象访问的,而是可以从如下自定义对象访问这些命令

我有一个typescript项目,其中很少有“Cypress自定义命令”执行如下导航:

Cypress.Commands.add('goToHome', () => { /* Logic here */ });
Cypress.Commands.add('goToProducts', () => { /* Logic here */ });
现在。我可以像这样运行这些命令:
cy.goToHome()

但是,我希望这些命令不是可以从
cy
对象访问的,而是可以从如下自定义对象访问这些命令:

Cypress.Commands.add('goToHome', () => { /* Logic here */ });
Cypress.Commands.add('goToProducts', () => { /* Logic here */ });
cy.header.goToHome()
cy.getHeader().goToHome()


在Cypress中有什么方法可以做到这一点吗?

好的,您可以定义一个类,该类包含只能从该名称空间访问的函数。这是组织代码并保持其整洁的好方法

例如,将文件navigation.js添加到您的支持文件夹中。添加以下代码:

class Navigation {


   goToHome(){ /* Logic here */ }

   goToProducts() { /* Logic here */ }

}

export default new Navigation();
然后,将其适当地导入到等级库文件中:

import Navigation from '../../support/navigation';
然后,在spec文件中,您将能够通过导航名称空间访问这些函数。例如:

it('I can navigate to the homepage', function() {

    Navigation.goToHome();
    
})

希望这就是你的意思,而且很有帮助。

谢谢你的详细回答,我知道我可以创建一个帮助器类,并在那里使用我的帮助器函数。但是我想知道是否有一种方法可以从全局
cy
对象访问它。