您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium操作聯(lián)動菜單
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2014/2/27 15:53:28 ] 推薦標簽:自動化測試 Selenium

  近在用Selenium實現(xiàn)自動化測試的過程中遇到了一些問題,不太好解決,或者解決了也覺得不是特別好的辦法,在這里寫出來一個是記錄一下,也向大家需求一下幫助,看看有沒有更好的辦法,謝謝!
  一個問題是二級聯(lián)動菜單,比如選擇省市的二級聯(lián)動菜單,在第一個菜單中選擇省份后會觸發(fā)二級菜單的load事件去 裝載市區(qū)的option label。可如果單獨用selenium.select(locator,label='xxx');的操作是無法觸發(fā)二級菜單的load事件的,從而執(zhí)行時無法找到相應(yīng)的label。大家的建議都是用fireEvent、mouseUp、mouseDown之類的API進行調(diào)試,可這些方法仍沒有解決我的問題。后來是通過先focus,再click,后select的步驟進行操作才能觸發(fā)事件并選到相應(yīng)的label。實例如下:
selenium.focus(provinceCode);
selenium.click(provinceCode);
selenium.select(provinceCode,label='Beijing');
selenium.focus(cityCode);
selenium.click(cityCode);
selenium.select(cityCode,label='Beijing');
  可感覺這種方式畢竟繁瑣,不知道有沒有更好的方法可以直接觸發(fā)事件,直接通過select進行操作。其間我還看到了這篇文章http://blog.csdn.net/honglei915/archive/2009/11/16/4815513.aspx,可是沒有成功,不知道是不是我用的框架沒有繼承SeleniumTestCase。因為我們的框架是結(jié)合TestNG,通過@Factory和@Test標注進行測試Case文件解析,文件以htm形式存在,將tr/td標簽解析為selenium可執(zhí)行的命令執(zhí)行自動化操作。如果大家有什么好的辦法請留言告訴我吧,謝謝!
  其次是對頁面上js事件的處理,現(xiàn)在我能想到的是用fireEvent()這個API。一個參數(shù)是要觸發(fā)這個js的控件的xpath,另一個參數(shù)是要觸發(fā)的事件, 大家給的建議一般都是blur或focus,可嘗試了很多次都沒有成功。不知大家有沒有更好的方法?或者了解這個API的大蝦能不能給具體講講,為啥用blur/focus,這倆有什么區(qū)別?還有沒有什么其他event可以用呢?謝謝!

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd