赛普拉斯自动化:一个功能中包含多个cy.get元素

问题描述

我有一个功能

checkWebElemAndAssert(...elements) {
    for (const element of elements) {
        element.should('be.visible').click().should('be.checked');
    }
}

我在另一个函数中使用它:

checkRegisterValues = () => {
    let maleCheckBox = cy.get('input[value=Male]');
    let femaleCheckBox = cy.get('input[value=FeMale]');
    let cricketCheckBox = cy.get('#checkBox1');
    let registerElemList = [maleCheckBox,femaleCheckBox,cricketCheckBox];
    this.browserUtils.checkWebElemAndAssert(...registerElemList);
    return this;
}

问题在于,当我使用checkRegisterValues()时,它会为每个操作使用最后一个元素:cricketCheckBox。关于什么是错的任何提示?我希望操作是针对每个元素而不是最后一个

解决方法

您是否尝试过像这样传递数组?

var startVerdi=1000;
let index = tab.indexOf(slider.value);

if(index != -1){
    let res = startVerdi;
    for(let i = 0; i <= index; i++)
       res *= tabProsent[i];

    output2.innerHTML = res;
}

您也可以打印出

    this.browserUtils.checkWebElemAndAssert(registerElemList);

看看你传递的是什么

,

好的,所以我读了一些,做了这个:

checkWebElemAndAssert2(elements) {
    cy.get(elements).each(($list) => {
        cy.get($list).click({ multiple: true }).should('be.checked')
    })
}

基本上,当我调用checkWebElemAndAssert2时,我将给出列表标识符。似乎可行,但不确定是否符合标准。

checkRegisterValues = () => {
    let myList = 'input[type=radio]';
    this.browserUtils.checkWebElemAndAssert2(myList);
    return this;
}