軟件測試 | 修改特定的元素屬性
問題
編碼完成、正在測試的應(yīng)用很少會為了測試人員的方便而進行修改。如果你可以在瀏覽器中實時地修改頁面,那么你就無需向應(yīng)用本身添加測試代碼。
另外,開發(fā)人員通常信任網(wǎng)頁的內(nèi)容保持不變。違反這一假定可以揭示出安全設(shè)計缺陷。
解決方案
按照2.3節(jié),安裝Firebug。Firebug是如此復(fù)雜的一個附加組件,它居然有自己的附加組件用來增強和擴展其功能。我們只需要Firebug的基本安裝。
瀏覽到你要編輯的頁面,單擊瀏覽器窗口右下角的綠色復(fù)選框。在某些情況下,網(wǎng)頁上可能確實有JavaScript錯誤,因此這時顯示的圖標可能是在紅色圓圈中帶個白色的X。
在Firebug中找出特定元素是很容易的。你的也可以在HTML選項卡中瀏覽,直到找到該元素,或者按Inspect按鈕并在瀏覽器和Firebug的HTML顯示中高亮顯示這個元素。這個方法也適用于CSS和DOM屬性,不過你必須手動選擇要修改的屬性。圖3-14顯示了這種高亮顯示,請親自試驗一下,確實相當直觀。

元素屬性實時顯示在Firebug右下區(qū)域中,分為3個面板:央視、布局和DOM信息各占一個。在每個面板中,你可以單擊任意值,這樣會在原地打開一個小的文本框。如果你更改了這個值,顯示的頁面將立即被更新。圖3-15向我們演示了在HTML窗格中編輯,將Yahoo!標識更改為Google的標識。注意,這并不會修改源代碼,也不會對服務(wù)器做任何調(diào)整;這些更改只出現(xiàn)在你的瀏覽器上下文中,而別人完全看不到。
在這種情況下,F(xiàn)irebug與DOM Inspector有相似的功能,但它還包含了一個JavaScript控制臺。它使你能夠從頁面本身的上下文出發(fā)執(zhí)行JavaScript。3.10節(jié)將深入利用利用這一點,但是對于初學者而言,通過使用常見的JavaScript方法(比如document. getElementById)來獲取基本的JavaScript和CSS信息已經(jīng)是非常簡單的了。

討論
實時地編輯頁面有優(yōu)勢也有劣勢。就是說,如果你刷新或瀏覽到其他頁面,更改將丟失。它的好處在于,你的測試不需要更改基本代碼,而且不會干擾后續(xù)測試。對于再次運行同一測試而言,這一點又令人喪氣,因為目前無法再Firebug中保存這些編輯。
本秘訣證明了這一格言:你不能信任瀏覽器。這些工具可以用來觀察傳送到客戶端的每一段代碼,然后更改代碼的任意部分。雖然更改發(fā)送到其他用戶的內(nèi)容是非常困難的,但更改顯示給你的內(nèi)容是相當簡單的。
更多學習資料戳!??!