Selenium 研究筆記

買了一堂自動化測試的課,做一些筆記
Selenium WebDriver Masterclass with C#

  1. compound class在C#不能跑,不過用XPath來選擇的話就可以
  2. chrome要更新到最新,然後chrome driver抓相對應的版本
  3. 用id來當locator最好,可是舊頁面就需要重包
  4. locator也可以用class,可是沒有獨特性,不適合我們專案
  5. 要寫測試需要安裝selenium support
  6. chrome driver檔案要放到專案裡,放根目錄(ex: UnitTest1.cs旁邊 18-194
  7. 寫好測試,要跑之前先build
  8. 測試要用Page Object Pattern
  9. 測試要寫得像plain English一樣
  10. 用[TestCategory(“SampleApplicationOne”)]來幫測試做分類
  11. 也有其它安裝chromeDriver的方法( ex: nuGet
  12. 方法名子可以取成Product Backlog Items (PBIs) level
  13. 在寫isVisible的時候記得,again doing the minimum necessary to get to get this code working.(其它很多地方也是這種概念)
  14. 作者說他喜歡用property>field,因為在IDE上property會有usage的提示(在哪裡有用到…)
記得還要按右鍵,add existing item,把chromedriver加進去
另外抽出來的API
在rider的上面選單選 Test > Unit Testing 來設定
要add chromeDriver的時候是對測試專案的資料夾按右鍵 > Add
有時候網頁元素還沒有LOAD出來,可以用wait方法來等它出現

有點熟就從Section 27開始看
開一個自動化測試專案的步驟:

  1. 開一個Unit Test Project,看是要選MSTest或其它框架都可以
  2. 安裝Selenium Support(它會自動幫你安裝Selenium WebDriver)
  3. 因為是Page Object Pattern,所以一開始是先有一個Page的Object,叫它來做事,把chrome driver傳給它,而不是直接叫chrome driver開始做事情。

如果chrome打開很快關掉,可能是版本不符,可以上debugger中斷點去看,像這個我降版就可以跑了。
有時候會有driver版本不符的問題
但是…有時候其實是你的chrome要更新沒更新,像上面的噴錯是說我的chorme是111,但selenium的DriverManager支援的是112(幹

參考閱讀:
MSTest v2: Execute tests in parallel