待测的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