将Cypress自定义命令移植到Selenium Java代码

问题描述

我需要将一些赛普拉斯自定义命令移植到Selenium Java代码中。我是Typescript和Cypress的新手,我无法理解以下代码的工作方式。需要帮助。

根据我对Cypress文档的了解,下面的代码没有任何意义。因为问题有点长,请忍受。

Cypress.Commands.add(
    "getTieredSearchInput",{ prevSubject: ["optional","element"] },(subject: string,selector?: string) => {
        const element = getElement(subject,selector);
        return element.getVacinput();
    }
);

getElement()getinput()是从头定义的从属函数

prevSubject选项设置为可选或元素。这意味着它可以是未定义的,或者如果已定义,则必须是一个元素。

据我了解,父主题将在自定义命令定义范围内的subject变量中可用。(如果我错了,请纠正我!)


我的问题是:

  1. 为什么subject如果已经通过链接从父方法获取,又再次声明为string
  2. 如果以上问题无效且subject是字符串,则getVacinput()方法仅适用于element类型,因此如何工作?

getElement()

function getElement(subject: any,selector?: string): Cypress.Chainable {
    if (subject == null && selector == null) {
        throw new Error(
            "Cannot get element without either selector or chained subject"
        );
    }

    return cy.then(() => {
        if (selector) {
            return cy.get(selector);
        }
        return cy.wrap(subject);
    });
}

getInput()

Cypress.Commands.add(
    "getInput",(subject: any,selector?: string) => {
        return getElement(subject,selector);
    }
);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)