Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript shift不是一个函数_Javascript_Testing_Automated Tests_Nightwatch.js_Nightwatch - Fatal编程技术网

Javascript shift不是一个函数

Javascript shift不是一个函数,javascript,testing,automated-tests,nightwatch.js,nightwatch,Javascript,Testing,Automated Tests,Nightwatch.js,Nightwatch,我试图让自动化测试备份并运行,但在运行测试时出现以下问题 该函数的目标是,如果选择器来自页面的某个部分,则对象选择器将是一个对象数组,从最外层的祖先(部分)开始,以元素结束,并按顺序连接其选择器 错误消息: 运行“getElements”命令时出错:祖先.shift不是一个函数 功能: function getSelector(selector) { let ancestors = selector; if (typeof ancestors !== "string&

我试图让自动化测试备份并运行,但在运行测试时出现以下问题

该函数的目标是,如果选择器来自页面的某个部分,则对象选择器将是一个对象数组,从最外层的祖先(部分)开始,以元素结束,并按顺序连接其选择器

错误消息: 运行“getElements”命令时出错:祖先.shift不是一个函数

功能:

function getSelector(selector) {
    let ancestors = selector;

    if (typeof ancestors !== "string") {
        selector = "";

        let oElement = ancestors.shift();
        while (oElement) {
            selector += " " + oElement.selector;
            oElement = ancestors.shift();
        }
    }
    return selector;
}

selector(selector) {
        return featureHelper.getSelector(selector);
    }

    getElement(result) {
        if (result.status === 0 && Array.isArray(result.value)) {
            for (let i = 0; i < result.value.length; i++) {
                if (typeof result.value[i] === "object") {
                    result.value[i].ELEMENT =
                        result.value[i][Object.keys(result.value[i])[0]];
                }
            }
            return result;
        } else {
            return result;
        }
    }
};
下面调用getSelector函数的代码:

function getSelector(selector) {
    let ancestors = selector;

    if (typeof ancestors !== "string") {
        selector = "";

        let oElement = ancestors.shift();
        while (oElement) {
            selector += " " + oElement.selector;
            oElement = ancestors.shift();
        }
    }
    return selector;
}

selector(selector) {
        return featureHelper.getSelector(selector);
    }

    getElement(result) {
        if (result.status === 0 && Array.isArray(result.value)) {
            for (let i = 0; i < result.value.length; i++) {
                if (typeof result.value[i] === "object") {
                    result.value[i].ELEMENT =
                        result.value[i][Object.keys(result.value[i])[0]];
                }
            }
            return result;
        } else {
            return result;
        }
    }
};
选择器(选择器){
返回featureHelper.getSelector(选择器);
}
getElement(结果){
if(result.status==0&&Array.isArray(result.value)){
for(设i=0;i
您声明选择器应为数组。但是,显然不是,因为
shift
不是一个函数。为了从这里帮助您,我们需要查看调用
getSelector
函数的代码。@aridlehoover感谢您的回答,我已将调用getSelector函数的代码添加到描述中。嘿,谢谢@chinwc!我仍然没有足够的上下文。我想知道您是否可以在可执行代码块中重现该问题。或继续向上查看调用堆栈,告诉我变量选择器的定义位置…您声明
selector
应该是一个数组。但是,显然不是,因为
shift
不是一个函数。为了从这里帮助您,我们需要查看调用
getSelector
函数的代码。@aridlehoover感谢您的回答,我已将调用getSelector函数的代码添加到描述中。嘿,谢谢@chinwc!我仍然没有足够的上下文。我想知道您是否可以在可执行代码块中重现该问题。或继续往上看调用堆栈,告诉我变量选择器是在哪里定义的。。。