網站popup與 New Window 的自動化測式處理方式 – 以百度登入為例子
這篇文章主要說明如何運用 Selenium IDE (不寫一行程式)來完成自動化測試。
測試情境很簡單,進行一個簡單的百度登入動作。
透過這個例子說明過程中運用的一些自動化測試的四個”小技巧”。
測試情境
- 1.瀏覽 http://www.baidu.com/
- 2. 點選 “登录”
- 3. 出現一個登入視窗後
- 4. 於 ID 欄位輸入 “1234”
- 5. 點擊 “登录”
(如下圖所示)
Selenium IDE錄製腳本
上述的動作透過 Selenium IDE 一般操作FireFox瀏覽器的同時,Selenium IDE就會自動產生相關的程式。其中有幾個問題與小技巧。
- 需不需要特別處理登入所出現的視窗? 在Selenium IDE是不需要特別處理新視窗。因為在 Selenium IDE 中,它會自動”聰明”的判斷。但是如果是用 python程式寫的話就要特別處理。
- 登入視窗出現的時間點會導致自動化程式執行失敗? 針對這個部分,可以在 Selenium IDE 左上角 “Fast —–Slow”,調整至 Slow 即可。讓整個點擊的速度變慢,自然就會成功了。另外可以多加一個 “waitForPageToLoad”
完成的Selenium IDE 指令如下所述
登入頁面”用戶名” “密碼”的 Xpath?
Selenium IDE 有一個聰明的功能,會自動將可能的定位方式都列出來。舉例如下:
在 Type 的指令列,Target的下拉式選單中,就會列出所有可能的網頁定位方式。其中有 id, name, css與其他 Xpath等。
Xpath 定位工具
https://addons.mozilla.org/ro/firefox/addon/element-locator-for-webdriv/
另外筆者建議這個 FireFox addon – “WebDriver Element Locator”
安裝完之後,可以就可以”用戶名” > 右鍵 > “Xpath…”
該工具會列出所有可行的 Xpath Locator (圖示如下)
小技巧摘要
- Selenium IDE 可以直接針對新視窗處理,不需要像 python程式那樣 select Window or select iframe
- Selenium IDE 可以透過 Fast —- Slow 的方式讓自動化測試程式比較不會受到新視窗出現的時間影響而測試失敗
- Selenium IDE 可以透過 Target 的下拉式選單選擇其他可行的 Locator (ID, name, CSS, xpath)
- FireFox 可以安裝”WebDriver Element Locator”,該工具會列出所有可能與可行的 Xpath。