我有一個問題,我一直在努力了幾天。錄製用戶輸入並確認在Firefox插件sdk
我正在爲firefox編寫一個userInput錄製系統,以便使用它來記錄基於Web的應用程序的測試。
我在表單字段上記錄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;
}
};
我遇到的問題是,當確認是由場變化引發的任何確認響應現場的變化,這是錯誤的順序運行測試之前記錄。
我認爲這是因爲頁面的onchange是在addon contentscript之前被評估的,有沒有什麼方法可以改變這個順序?
我希望有一個解決方案或解決方法,不使用超時或更改基本頁面內容。 我還需要能夠記錄由其他事件引起的確認,如頁面加載。
謝謝您的回覆。我將您建議的偵聽器添加到observeWindow()函數中,但是在記錄確認響應之後,偵聽器函數仍會觸發。 :( – Arth 2012-03-07 13:25:38
順便說一下,在observeWindow()函數中設置window.onchange時,實際上會在兩個窗口監聽器函數之後觸發,以便更改泡泡和捕獲階段。:( – Arth 2012-03-07 13:34:02
對不起,當時是白癡,確認對話框是實際上是由應用程序中的複選框和收音機的onclick提示 - 您的方法代表由onchange發起的確認 – Arth 2012-03-07 14:20:33