У меня есть проблема, с которой я боролся уже несколько дней.
Я пишу систему записи userInput для Firefox с целью ее использования для записи тестов для веб-приложения.
Я записываю события onchange в поля формы и сохраняю их в хранилище, используя contentScript с добавленными прослушивателями для события onchange каждого поля.
field.addEventListener('change', recordFieldChange);
Я также записываю, что пользователь js подтверждает ответы, используя переопределение на основе сервиса наблюдателя методов window.confirm.
var obs = require("observer-service");
obs.add("content-document-global-created", observeWindow);
function observeWindow(subject) {
var window = subject.wrappedJSObject;
var standardConfirm = window.confirm;
window.confirm = function(pMessage) {
response = standardConfirm(pMessage);
recordConfirm(response);
return response;
}
};
Проблема, с которой я столкнулся, заключается в том, что любые подтверждающие ответы, когда подтверждение инициируется изменением поля, записываются до изменения поля, что является неправильным порядком для запуска теста.
Я думаю, это потому, что обмен страниц оценивается до добавления содержимого аддона, есть ли способ изменить этот порядок?
Я надеюсь на решение или обходной путь, в котором не используются тайм-ауты или изменение основного содержимого страницы.
Мне также нужно иметь возможность записывать подтверждения, вызванные другими событиями, такими как загрузка страниц.