前一篇我們理解了 Playwright 的 async / await 機制如何讓測試能夠一步步按照順序執行,現在來談談 Playwright 另一個執行測試時...
上一篇在認識 Timeout 時提到 Hooks,Hooks 是測試框架裡非常常見的生命週期輔助方法,大部份的測試框架命名都大同小異,我們開始來認識 Playw...
上一篇我們成功地運用 Hooks 收納重複執行的程式碼,只需編寫一次就可重複使用,大大提升了可讀性,但是,各位玩家們請仔細看一下 describe 內的測試:...
在真實的測試戰場裡,怪物(元素)很少會乖乖只出現一個。更多時候,你會面對一大群長得一模一樣的敵人:十幾個按鈕、數百個表格列、成群結隊的清單項目。 思考一下,我們...
上一篇我們已經學會運用序列以及篩選的方式來準確定位,但除此之外,我們還可能遇到畫面上沒有文字(無法用 getByRole 或 getByText),也沒有 la...
前兩篇我們解鎖了定位「重複元素」以及「隱形元素」的技能,接著,下一個任務,我們要解鎖的技能是「檔案的上傳與下載」,這也是一個在使用網頁時很常見也很實用的操作行為...
我們完成了上傳檔案與下載檔案的任務,新的挑戰是處理 dialog (對話框) 事件,無論是alert()、confirm()、prompt() 甚至是 befo...
上一篇我們學會了如何處理對話框,由於不曉得對話框何時出現,所以必須設置一個監聽器來處理,接著我們要來聊聊另一個非常類似的狀況:不知道預期的結果需要等多久才會出現...
我們連續練習了許多操作網站的常見行為,接著,我們要來學習如何處理多分頁/視窗,在網站上點擊一個連結,如果這個連結有 target="_blank&qu...
歷經一連串初階副本任務,我們已經習得不少進階的實戰技巧。接著,將迎來新的挑戰,認識 Page Object Models (以下簡稱 POM)。透過建立專屬的...