我最近去了chatGPT 並詢問有哪些好的自動化練習,在同一系統上工作一段時間後,或者只為特定類型的用戶流提供自動化,我們最終可能會忘記一些事情,所以我問了一些練習網站,然後我找到了互聯網。
儘管該網站可能看起來很簡陋,但它們仍然為您提供了一個嘗試自動化的地方,而目前,這就是我所需要的。我花了一些時間使用 Cypress 解決了一些經典的網路挑戰。
因此,言歸正傳,讓我們深入研究我自動化的一些場景,涵蓋從神奇般來來去去的按鈕、奇怪的拖放、與文件相關的自動化和一些快速 Shadow DOM 工作的所有內容!
- 拖放: 如果您曾經嘗試過自動化拖放操作,您就會知道它從來沒有看起來那麼簡單。雖然 Cypress 對某些互動有原生支援(我確實嘗試過,哈哈),但仍然需要一些創造力才能在這裡進行拖放測試。
在本例中,我使用觸發器('mousedown')、觸發器('dragover')和觸發器('mouseup')嘗試了自訂拖放指令。由於該網站上實現該功能的方式,我必須更深入地挖掘才能使該測試正常工作,但對於大多數現代應用程式來說,cypress 插件應該足夠了(謝天謝地)。
- 新增/刪除元素:
這個練習中的「加入元素」按鈕理論上很簡單,但有趣的是這個遊樂場有時會試圖擾亂你的期望,哈哈。點擊它一次,然後...出現一個刪除按鈕(這不是超級直觀,但哦,好吧,你只需要使用它)。訣竅是確保我們在測試中以穩定且可重複的方式處理添加-刪除舞蹈。使用 Cypress,我們檢查按鈕是否出現,新增更多按鈕,然後將它們一一刪除,確保順序不會出現問題。
專業提示:
追蹤出現和消失的元素可能很棘手,但 Cypress .should('exist') 和 .should('not.exist') 斷言可以很好地處理這個問題。另外,您每次都會得到甜蜜的視覺確認。
- 動態內容:
我認為這是本文中最簡單的範例,但它仍然很有趣,這個想法只是創建測試來確保內容的格式是一個常數,即使它的內容會總是改變......不過對於學習仍然有用。
Cypress 可以確認元素按預期加載,而無需對實際內容過於挑剔,從而保持測試的彈性。
- 動態控制:
對於這個控件,諸如複選框和按鈕之類的控件會根據使用者互動而出現或消失。有些需要等待載入指示器消失。在這裡,Cypress 的 cy.wait 和 .should('be.visible') 是關鍵。
快速提示:
不要使用硬編碼的等待,而是使用 .should('exist') 和 .should('be.disabled') 等斷言來對頁面的狀態做出反應。這使得測試更加穩健和適應性更強。
- 檔案下載:
下載檔案可能聽起來很簡單,直到您必須證明它確實發生了。使用 Cypress,我們可以採取不同的措施來確保檔案確實已下載。
我們可以做不同的事情來確保下載完成,對於這個應用程序,我只是確保在單擊鏈接後我們在下載資料夾中擁有該文件。非常簡單,一旦文件存在,測試就會自動通過。可以套用其他策略,例如使用 cy.intercept 來驗證是否觸發了下載請求。
- 檔案上傳: 就像檔案下載一樣,Cypress 的檔案上傳也非常流暢。
對於這種類型的場景,您可以使用 cypress-file-upload 之類的東西
這是一個非常好用的插件,並確認該檔案已被應用程式處理。
在我的範例中,所有這些都是透過.selectFile 命令完成的,並且有一種方法可以做到這一點,甚至無需發送實際文件,只需使用Cypress.Buffer 就可以解決問題(您可以看到裡面的實作)下面連結的儲存庫)。
這適用於透過點擊按鈕完成的上傳以及拖放上傳,非常簡單......謝謝賽普拉斯? .
- 影子 DOM:
Shadow DOM 的神秘之處在於元素就像主 DOM 中的秘密。它們被隱藏起來,不遵循常規的 CSS 可見性規則,這可能有點棘手,這取決於您需要如何在它們上運行自動化。值得慶幸的是,Cypress 支持 Shadow 命令來刺穿這一面紗並找到那些隱藏的元素。
對於這些測試,我使用cy.get('element').shadow() 來存取Shadow DOM 中的元素,然後,不再有問題或困難,您可以像您一樣存取元素並對其進行斷言與普通的。
現在就是這樣..只是簡單的6 個範例,說明我們如何使用Cypress 來處理一些基本的瀏覽器自動化使用,以及如何利用它來讓您的生活更輕鬆地處理此類情況.
準備好嘗試了嗎?
如果您有興趣嘗試這些測試或根據您的專案調整它們,我已在我的 GitHub 儲存庫上提供了程式碼。測試套件非常輕量,所以不應該有太多疑問點,而且我們有 GitHub Actions 流程,您可以使用它,這樣您就可以看到它是如何運作的!謝謝您,我們下次再見!
以上是Cypress 的網路:Heroku 的「網路」遊樂場的真實場景的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript核心數據類型在瀏覽器和Node.js中一致,但處理方式和額外類型有所不同。 1)全局對像在瀏覽器中為window,在Node.js中為global。 2)Node.js獨有Buffer對象,用於處理二進制數據。 3)性能和時間處理在兩者間也有差異,需根據環境調整代碼。

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版
中文版,非常好用

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)