Javascript 为什么我会收到一条信息,说;对象不是函数;当我尝试申请时?

Javascript 为什么我会收到一条信息,说;对象不是函数;当我尝试申请时?,javascript,Javascript,我设置了一些变量来保存页面元素: this.examStatusSelect = element(by.id('examStatusSelect')); this.examTypeSelect = element(by.id('examTypeSelect')); 我有这个函数调用: dom.checkGrid('* check', 0, [ [page.examStatusSelect, 0], [page.examTypeSelect, 0],

我设置了一些变量来保存页面元素:

this.examStatusSelect = element(by.id('examStatusSelect'));
this.examTypeSelect = element(by.id('examTypeSelect'));
我有这个函数调用:

    dom.checkGrid('* check', 0, [
        [page.examStatusSelect, 0],
        [page.examTypeSelect, 0],
    ]);
我想做的是调用另一个函数,如下所示:

var Dom = function () {

var self = this;

this.getSelectOption = function (element, value) {
    var id = element.locator_.value;
    return element(by.xpath('//select[@id="' + id + '"]/option[@value = "' + value + '"]'));
}

this.checkGrid = function (label, expectedCount, params) {
    it(label + ': Check for ' + expectedCount + ' grid rows', function () {
        for (var i = 0; i < params.length; ++i) {
            self.getSelectOption.apply(self, params[i]).click();
        }
        page.retrieveButton.click();
        expect(page.row.count()).toBe(expectedCount);
    });
}

我不明白这意味着什么。有人能告诉我可能做错了什么吗?我也不确定应用后self的用途是什么(?

您正在本地范围内重新定义
元素。请将您的输入参数命名为
elem
,例如:

this.getSelectOption = function (elem /* local scope */, value) {
    var id = elem.locator_.value; /* elem is local scope here */
    /* element is from the not local scope 
       (might be global, could also be from a closure) */
    return element(by.xpath('//select[@id="' + id + '"]/option[@value = "' + value + '"]'));
}

您正在本地范围内重新定义
元素
。请将您的输入参数命名为
元素
,例如:

this.getSelectOption = function (elem /* local scope */, value) {
    var id = elem.locator_.value; /* elem is local scope here */
    /* element is from the not local scope 
       (might be global, could also be from a closure) */
    return element(by.xpath('//select[@id="' + id + '"]/option[@value = "' + value + '"]'));
}

您正在本地范围内重新定义
元素
。请将您的输入参数命名为
元素
,例如:

this.getSelectOption = function (elem /* local scope */, value) {
    var id = elem.locator_.value; /* elem is local scope here */
    /* element is from the not local scope 
       (might be global, could also be from a closure) */
    return element(by.xpath('//select[@id="' + id + '"]/option[@value = "' + value + '"]'));
}

您正在本地范围内重新定义
元素
。请将您的输入参数命名为
元素
,例如:

this.getSelectOption = function (elem /* local scope */, value) {
    var id = elem.locator_.value; /* elem is local scope here */
    /* element is from the not local scope 
       (might be global, could also be from a closure) */
    return element(by.xpath('//select[@id="' + id + '"]/option[@value = "' + value + '"]'));
}

你可能是对的,但是OP真的应该澄清你必须做出的假设。你可能是对的,但是OP真的应该澄清你必须做出的假设。你可能是对的,但是OP真的应该澄清你必须做出的假设。你可能是对的,但是OP真的应该有cl使你不得不做出的假设多样化。