待測的ExtJs頁面其實只能在IE8上正常跑(由於需要用到ocx),但是剛好待測的功能可以不用ocx進行,所以在firefox也能正常跑。
由於本人是新手,爲了避免從頭寫腳本,決定先用firefox錄製測試用例,再導出爲java或其他語言的web driver。
Firefox需要安裝插件如下:
Selenium IDE 2.9.1,
FireBug,
FirePath
在Selenium IDE錄了以後,回放時,發現以id找不到ExtJs下拉菜單的頂層按鈕元素以及菜單內的菜單項元素,因爲id是動態生成的,每次都在變。
找了一堆資料後,發現別人也遇到了同樣的問題,試了幾種解決方法都不行,最後找到了一個靠譜的解決方法:
http://youku.io/questions/12839/any-suggestions-for-testing-extjs-code-in-a-browser-preferably-with-selenium
該文推薦:放棄id或者xpath定位,而改爲以css定位,這比較靠譜而且速度快
對於button,是很簡單的,只要在Target欄內寫入:
css=button:contains('按鈕上的文字')
對於菜單項,稍微複雜一些,我要找的元素通過“Inspect in FirePath”看,是一個span,因此只要在Target欄內寫入:
css=.x-menu-item-text:contains('菜單項上的文字')
需要注意的是,在click前,需要先等待元素出現waitForElementPresent