Параметр не передается от родительской к дочерней функции в javascript для browser.executesript()

Я хочу открыть новую вкладку (создаю ссылку и кликаю), используя приведенный ниже код в транспортире.

Если я жестко закодирую текст ссылки прямо внутри setattributes(), то работает нормально. Если я отправлю linkname от вызова функции, linkname выдает ошибку как неопределенную.

Как заставить функцию распознавать linkname параметр. Я пробовал стрелять и не работал. Не уверен, правильно ли я поступил.

function addclickhref(linkname) {
    return browser.driver.executeScript(function () {
        (function (link) {
            document.body.appendChild(link);
            link.setAttribute('href', linkname);
            link.dispatchEvent((function (e) {
                e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
                return e;
            }(document.createEvent('MouseEvents'))))
        }(document.createElement('a')));
    })
}

Примечание: Обычный способ открыть новую вкладку с помощью Ctrl+T не работал в транспортире. Таким образом, я пришел, чтобы использовать этот обходной путь.

1 ответ

Чтение вопроса, с которым вы связаны

function addclickhref(linkname) {
    return browser.driver.executeScript(function (arguments) {
        var linkname = arguments[0];
        (function (link) {
            document.body.appendChild(link);
            link.setAttribute('href', linkname);
            link.dispatchEvent((function (e) {
                e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
                return e;
            }(document.createEvent('MouseEvents'))))
        }(document.createElement('a'))); 
    }, linkname); // added second argument to executeScript
}
Другие вопросы по тегам