我已經定義了一個LocatorBuilder函數並將它作爲LocatorBuilders數組的第一個元素插入。它工作得很好。但是,當我在函數頂部添加一個alert()函數時,我發現我的函數被記錄的每個用戶單擊都被調用兩次。具體來說,當我打開錄製並單擊頁面上的按鈕時,事件序列爲:1)調用我的函數,2)使用我生成的定位器表達式記錄點擊,3)瀏覽器處理點擊,4)我的函數被再次調用。爲什麼Selenium IDE錄像機每次用戶點擊多次呼叫我的LocatorBuilder功能?
注 - 我無法在任何地方找到它,但我從根本上推測,記錄器調用LocatorBuilders列表中的每個函數,每個函數都會返回一個候選位置表達式,直到它獲得一個非null表達式,該表達式完全匹配元素在頁面上。
所以我的函數按需要工作,但額外的函數調用似乎是多餘的。有沒有一些有效的理由,我的表達式生成器函數需要多次調用?例如,主題HTML元素可能在調用之間改變?在連續調用我的函數之間記錄器正在做什麼?
編輯:DOH!我發現我將兩個函數添加到LocatorBuilders.order列表中。所以現在我的函數只被調用兩次。儘管如此,爲什麼多次打電話?