Параметр не передается от родительской к дочерней функции в 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
}