qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Selenium操作聯動菜單

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

          posted on 2014-02-28 10:52 順其自然EVO 閱讀(2868) 評論(0)  編輯  收藏 所屬分類: selenium and watir webdrivers 自動化測試學習

          <2014年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          2324252627281
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大庆市| 化德县| 乌兰浩特市| 吉水县| 丹东市| 沁阳市| 包头市| 永登县| 花垣县| 连江县| 固原市| 平塘县| 巴林右旗| 肇庆市| 台东市| 利津县| 黔西| 泰来县| 诏安县| 蒲江县| 绥阳县| 敦煌市| 岱山县| 沈丘县| 延津县| 云梦县| 郑州市| 揭阳市| 兖州市| 禹州市| 鸡西市| 太原市| 吉隆县| 上蔡县| 通州区| 苍梧县| 杭锦旗| 张家界市| 成安县| 松滋市| 河东区|