開始之前,您必須先完成練習 1.7:使用比較程式來更新驗證點。
在本練習中,您將利用物件對映表來修正物件識別警告的問題。您也將利用正規表示式來提高物件識別的彈性。
當您發現識別失敗或警告時,請查看日誌訊息。在練習 1.7 結束時,您應該已經讓日誌保持開啟。如果沒有開啟,請在「專案」視圖中按兩下日誌,將它開啟。日誌中還有一個個別的警告。事件標題為「物件識別太弱(超出警告臨界值)」。在 ClassicsA 中,密碼欄位的名稱是 Remember Password,而在 ClassicsB 中,則是 Remember The Password。當您在 ClassicsB 上重播 Script 時,由於這個差異,物件識別無法完全相符。
這時游標會移到該行號的左邊界中。
RememberPassword().clickToState(SELECTED);
這個指令行代表您按一下密碼勾選框的動作。Script 中的這一行顯示失敗的物件。現在您可以在物件對映表中尋找該物件。
您應該會看到 "rememberPassword" 列示在測試物件資料夾之下。
請注意,所有的物件都會變成黑色的文字。在您於對映表中接受這些物件之前,文字將以藍色顯示(代表新物件)。您應該在第一次查看新建的物件對映表時接受物件。
如果要將新物件新增至對映表,請開啟 ClassicsB 和成員登入對話框。您可以看到這是來自 ClassicsA 的物件,因為它在 accessibleContext.accessibleName 內容中顯示的是 "Remember Password"。這是「舊」物件。不過,當您在 ClassicsB 上重播 Script 時,該物件的文字已經變更,因此功能測試會將它視為「新」物件。您想在本案例中使用新物件內容,因此您必須將它新增至對映表中。
這時會開啟「成員登入」對話框。
這與「驗證點精靈」之選取物件頁面中的「物件搜尋器」工具相同。
選取這個勾選框後,您會看到 accessibleContext.accessibleName 內容現在已經是 "Remember The Password"。如有必要,請拉大物件對映表的邊框來查看其內容。
此時新的勾選框物件就會顯示在物件對映表中。
現在,對映表中已同時列出舊物件和新物件。您想統一這兩個物件,並從每個物件中取得您想用於新物件的內容。
這時會出現統一測試物件精靈。
原始物件的內容顯示在左下角區段中。它的標籤應該是 "Source: RememberPassword"。這就是 ClassicsA 中勾選框上顯示的文字。在右下角區段中,它的標籤應該是 "Target: RememberThePassword",也就是 ClassicsB 中勾選框上顯示的文字。
因為您已將舊物件拖曳到新物件中,所以新物件的識別內容會填入精靈的頂端位置。一般而言,如果新內容是偏好的內容,功能測試就會將它們放在頂端位置。不過,部分舊的管理內容可能為偏好選項。例如,功能測試會保留舊內容集內的正規表示式。如果要使用舊物件中的內容,請在舊物件的方格中按兩下該內容,將它複製到統一物件中。在本案例中,我們想要使用新物件的所有內容,而這些內容已經填寫完成。
這時會列出受物件對映表中這項變更影響的所有 Script。只有一個 Script 受到影響,就是 Classics。
現在 Script 會通過測試,而不會顯示任何警告訊息!請注意,由於識別內容現在已經相符,因此重播作業在密碼勾選框物件上不會有暫停的現象。
這個物件統一功能提供了一種方式,使您可以在刻意變更物件的識別內容時,輕鬆更新 Script。這項功能的主要優點之一就是,如果有許多 Script 正在使用您的物件對映表,當您在精靈中進行變更時,您可以將它們全部更新。您不需要手動編輯多個 Script,您只需要在對映表中執行一次變更,它就會自動傳送到使用它的所有 Script 中。這項功能可以節省您的時間。
附註:另外還有一種更簡單的方法可以在測試物件的識別內容變更時更新這些內容。除了使用本練習說明的「統一」精靈以外,您還可以從「物件對映表」選取要更新識別內容的測試物件。請用滑鼠右鍵按一下顯示在「物件對映表」樹狀結構中的測試物件,然後從蹦現功能表中選取更新識別內容。您必須在執行這個動作時同時執行測試應用程式,功能測試才能取得更新的識別內容。只有在您不想使用舊物件的任何內容時,您才能使用這種更新方法。
現在您已準備就緒,可以開始執行練習 1.9:變更識別喜好設定。