## 涉及到JS組件的測試案例
> 在當前的軟件開發中,web頁面會經常使用一些JS組件,而這些組件由于是動態生成的,用一般的腳本測試會導致測試用例報錯,所以Selenium中會提供一些特殊的腳本來處理這些問題。
> 此文檔用于描述Selenium如何處理某些特殊場景。
## 案例一:彈窗組件操作
彈窗組件是一種模擬彈出窗的JS組件,本案例以人員選擇功能為例,表單中需要從組織機構中選擇對應的人員信息,操作界面如下:
1. 表單頁面呈現

2. 雙擊文本框,彈出選擇窗口

3. 搜索人員,確認選擇

4. 組件回填,操作完成

* * * * *
## 用例腳本demo
| 命令(Command) | 目標(Target) | 值(Value) | 腳本說明 |
| -- | -- | -- | -- |
| ... | ... | ... | ... |
| doubleClick | id=customer_sellMan | | 雙擊報銷人員文本框 |
| waitForElementPresent | css=div.window_title_text | 人員選擇 | 等待**人員選擇**窗口加載完成 |
| selectFrame | //iframe[@class='window_frame no-draggable no-resizable '] | | 切換人員選擇所在區域 |
| waitForText | css=td.form_text_right > div | 選中人員 | 等待**人員選擇**窗口內部區域加載完成 |
| type | id=searchVal | ADMIN | 搜索欄中輸入**ADMIN** |
| click | id=searchButton | | 點擊搜索按鈕 |
| click | id=deptTree_4_check | | 點擊搜索出來的人員信息 |
| click | id=confirmButton | | 點擊確認按鈕 |
| selectFrame | relative=top | | 切換主頁面所在區域 |
| ... | ... | ... | ... |
> 以上腳本中,帶雙斜杠的并非注釋,而是Selenium的XPath語法。