亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Selenium2學習-010-WebUI自動化實戰實例-008-Se

系統 1683 0

此文主要講述用 Java 編寫 Selenium 自動化測試腳本編寫過程中,對下拉列表框 Select 的操作。

下拉列表是 Web UI 自動化測試過程中使用率非常高的,通常有兩種形式的下拉列表,一種是 Select 的下拉列表,此種操作的時候比較簡單,定位到元素后直接操作即可;還有的下拉列表是以多個 div + js + input 的形式實現,input 用于存儲選擇的項的 value 值;當然也會有其他方式實現的下拉列表。

希望能對初學 Selenium2 WebUI 自動化測試編程的親們有所幫助。若有不足之處,敬請大神指正,不勝感激!

以下為 Selenium 操作下拉列表 Select 的 Java 自動化測試腳本實例源代碼,敬請參閱!

        
           1
        
        
          package
        
        
           main.aaron.demo.droplist;


        
        
           2
        
        
           3
        
        
          import
        
        
           main.aaron.sele.core.TestCase;


        
        
           4
        
        
           5
        
        
          import
        
        
           org.openqa.selenium.By;


        
        
           6
        
        
          import
        
        
           org.openqa.selenium.WebElement;


        
        
           7
        
        
          import
        
        
           org.openqa.selenium.support.ui.Select;


        
        
           8
        
        
          import
        
        
           org.testng.annotations.Test;


        
        
           9
        
        
          10
        
        
          /**
        
        
          11
        
        
           * Selenium 操作下拉列表實例-Select


        
        
          12
        
        
           * 


        
        
          13
        
        
           * 
        
        
          @author
        
        
           Aaron.ffp


        
        
          14
        
        
           * 
        
        
          @version
        
        
           V1.0.0: autoSeleniumDemo main.aaron.demo.droplist Droplist01.java, 2015-6-16 19:03:51 Exp $


        
        
          15
        
        
          */
        
        
          16
        
        
          public
        
        
          class
        
         Droplist01 
        
          extends
        
        
           TestCase{


        
        
          17
        
        
          //
        
        
           獲取需要打開的鏈接的 URL 路徑
        
        
          18
        
        
          private
        
        
          final
        
         String baseUrl = 
        
          this
        
        .PROJECTHOME + 
        
          this
        
        .FILESEPARATOR + "source" + 


        
          19
        
        
          this
        
        .FILESEPARATOR + "html" + 
        
          this
        
        .FILESEPARATOR + "selectDemo.html"
        
          ;


        
        
          20
        
        
          21
        
        
              @Test


        
        
          22
        
        
          public
        
        
          void
        
        
           testDropList(){


        
        
          23
        
        
          this
        
        .webdriver.get(
        
          this
        
        
          .baseUrl);


        
        
          24
        
        
          25
        
        
          //
        
        
           獲取元素-下拉列表
        
        
          26
        
                 WebElement goodsTypeList = 
        
          this
        
        .webdriver.findElement(By.id("goodsType"
        
          ));


        
        
          27
        
        
          28
        
        
          //
        
        
           將元素轉換為 Select
        
        
          29
        
                 Select gtl = 
        
          new
        
        
           Select(goodsTypeList);


        
        
          30
        
        
          31
        
        
          //
        
        
           模擬用戶點擊動作展開下拉列表,也可不執行直接選擇;


        
        
          32
        
        
          //
        
        
           若是執行此步再選擇下拉列表之后無其他操作時,列表會一直存在;執行其他操作時,列表收起
        
        
          33
        
        
                  goodsTypeList.click();


        
        
          34
        
        
          35
        
        
          //
        
        
           通過列表項的 option 索引選擇,也可不執行
        
        
          36
        
                 gtl.selectByIndex(3
        
          );


        
        
          37
        
        
          38
        
        
          this
        
        .webdriver.findElement(By.id("goods"
        
          )).clear();


        
        
          39
        
        
          this
        
        .webdriver.findElement(By.id("goods")).sendKeys(
        
          this
        
        
          .selectSelected(gtl));


        
        
          40
        
        
          41
        
        
          /**
        
        
          42
        
        
                  // 通過列表項的 option 的 value 值選擇


        
        
          43
        
        
                  gtl.selectByValue("3v");


        
        
          44
        
        
          45
        
        
                  // 通過列表項的 option 的 text 值選擇


        
        
          46
        
        
                  gtl.selectByVisibleText("汽車精品");


        
        
          47
        
        
          48
        
        
                  // 遍歷列表項的所有可選項,并選擇對應的項


        
        
          49
        
        
                  for (int i = 0; i < gtl.getOptions().size(); i++) {


        
        
          50
        
        
                      gtl.getOptions().get(i).click();


        
        
          51
        
        
                  }


        
        
          52
        
        
          53
        
        
                  // 遍歷列表項的所有可選項,并選擇對應的項


        
        
          54
        
        
                  for (WebElement item : gtl.getOptions()) {


        
        
          55
        
        
                      item.click();


        
        
          56
        
        
                  }


        
        
          57
        
        
          */
        
        
          58
        
        
              }


        
        
          59
        
         }
      
Selenium 操作下拉列表實例-Select 源代碼

以下為上述代碼中調用的方法源碼

        
           1
        
        
          /**


        
        
           2
        
        
               * 獲取 Select 已選中的項的 text 值


        
        
           3
        
        
               * 


        
        
           4
        
        
               * @author Aaron.ffp


        
        
           5
        
        
               * @version V1.0.0: autoSeleniumDemo main.aaron.sele.core SeleniumCore.java selectSelected, 2015-6-16 19:40:02 Exp $


        
        
           6
        
        
               * 


        
        
           7
        
        
               * @param select : Select 下拉列表對象


        
        
           8
        
        
               * @return 已選擇項的 text 值


        
        
           9
        
        
               */


        
        
          10
        
        
              public String selectSelected(Select select){


        
        
          11
        
        
                  String text = "";


        
        
          12
        
        
          13
        
                 for (int i = 0; i 
        
          <
        
        
           select
        
        
          .getOptions().size(); i++) {


        
        
          14
        
        
                      if (select.getOptions().get(i).isSelected()) {


        
        
          15
        
        
                          text 
        
        
          = select.getOptions().get(i).getText();


        
        
          16
        
        
          17
        
        
          return text;


        
        
          18
        
        
                      }


        
        
          19
        
        
                  }


        
        
          20
        
        
          21
        
        
                  return text;


        
        
          22
        
        
              }
        
      
selectSelected 方法

以下為 Select 下拉列表源碼(selectDemo.html):

        
           1
        
        
          <
        
        
          html
        
        
          >
        
        
           2
        
        
          <
        
        
          head
        
        
          >
        
        
           3
        
        
          <
        
        
          meta 
        
        
          charset
        
        
          ='utf-8'
        
        
          >
        
        
           4
        
        
          <
        
        
          title
        
        
          >
        
        下拉列表框
        
          </
        
        
          title
        
        
          >
        
        
           5
        
        
          </
        
        
          head
        
        
          >
        
        
           6
        
        
           7
        
        
          <
        
        
          body
        
        
          >
        
        
           8
        
        
          <
        
        
          a 
        
        
          id
        
        
          ="goodtype"
        
        
          >
        
        商品分類:
        
          </
        
        
          a
        
        
          >
        
        
           9
        
        
          <
        
        
          select 
        
        
          id
        
        
          ="goodsType"
        
        
          >
        
        
          10
        
        
          <
        
        
          option 
        
        
          value
        
        
          ="0v"
        
        
          >
        
        請選擇...
        
          </
        
        
          option
        
        
          >
        
        
          11
        
        
          <
        
        
          option 
        
        
          value
        
        
          ="1v"
        
        
          >
        
        筆記本
        
          </
        
        
          option
        
        
          >
        
        
          12
        
        
          <
        
        
          option 
        
        
          value
        
        
          ="2v"
        
        
          >
        
        硬件外設
        
          </
        
        
          option
        
        
          >
        
        
          13
        
        
          <
        
        
          option 
        
        
          value
        
        
          ="3v"
        
        
          >
        
        大家電
        
          </
        
        
          option
        
        
          >
        
        
          14
        
        
          <
        
        
          option 
        
        
          value
        
        
          ="4v"
        
        
          >
        
        創意小電
        
          </
        
        
          option
        
        
          >
        
        
          15
        
        
          <
        
        
          option 
        
        
          value
        
        
          ="5v"
        
        
          >
        
        個護電器
        
          </
        
        
          option
        
        
          >
        
        
          16
        
        
          <
        
        
          option 
        
        
          value
        
        
          ="6v"
        
        
          >
        
        汽車精品
        
          </
        
        
          option
        
        
          >
        
        
          17
        
        
          <
        
        
          option 
        
        
          value
        
        
          ="7v"
        
        
          >
        
        辦公文具
        
          </
        
        
          option
        
        
          >
        
        
          18
        
        
          </
        
        
          select
        
        
          >
        
        
          19
        
        
          20
        
        
          <
        
        
          input 
        
        
          id
        
        
          ="goods"
        
        
           type
        
        
          ="text"
        
        
          ></
        
        
          input
        
        
          >
        
        
          21
        
        
          </
        
        
          body
        
        
          >
        
        
          22
        
        
          </
        
        
          html
        
        
          >
        
      
Select 下拉列表源碼 selectDemo.html

  由上述源碼可知,操作下拉列表-Select 時,首先要獲得 Select 元素(Selenium 自動化頁面操作的基礎),再 new 一個 Select 對象,然后對 Select 對象進行操作,即可正確的進行下拉列表的操作,以及獲取下拉列表當前已選擇的項值。動手能力強的親們,也可以自己封裝一下 Selenium 對 Select 的操作幾個有用方法,例如:判斷 option 的 value 是否存在;判斷 option 的 text 值是否存在;判斷 index 值是否超出 option 的數組邊界。。。等等,用于后續的 WEB UI 自動化。

  選擇下拉列表項的方法有三種:(1)option 的 index,(2)option 的 value,(3)option 的 text。無論選擇哪種方法,建議對三者的值進行校驗判斷,否則易出現元素不存在的錯誤,當然也可以對代碼 try...catch 一下,以處理異常。

  PS:使用上述源碼時,注意一下幾點:

  1、替換源碼中的 baseUrl 為實際路徑;

  2、將 selectSelected 方法正確添加到源碼,否則執行的時候會報錯

  3、自行添加啟動瀏覽器的代碼

?

下拉列表框操作下期精彩: Selenium2學習-014-WebUI自動化實戰實例-012-Selenium 操作下拉列表實例-div+{js|jquery}

?

至此, WebUI 自動化功能測試腳本 第 008 篇-下拉列表框 Select 操作 順利完結,希望此文能夠給初學 Selenium 的您一份參考。

最后,非常感謝親的駐足,希望此文能對親有所幫助。熱烈歡迎親一起探討,共同進步。非常感謝! ^_^

?

Selenium2學習-010-WebUI自動化實戰實例-008-Selenium 操作下拉列表實例-Select


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本免费不卡在线一区二区三区 | 操操碰| 老司机午夜免费福利 | 久久久久久久免费视频 | 中文字幕不卡一区 | 一级特级欧美a毛片免费 | 大陆老太xxxxxxxxhd| 美女又黄又免费的视频 | 欧美成人一区二区三区不卡 | 精品国产影院 | 久久精品免看国产成 | chinese性中国女人 | 国产精品永久免费视频观看 | 国产小视频在线观看 | 亚洲天堂不卡 | 日日干日日操 | 欧美黄色免费在线观看 | 五十路一区二区三区视频 | 国产瑟瑟 | 国产97在线 | 亚洲 | 国产精品66在线观看 | 国内精品久久久久影院网站 | 日日狠狠久久偷偷四色综合免费 | 男人与牛做爰的视频 | 狠狠操大逼| 日韩欧美国产一区二区三区 | 99精品福利视频 | 成人毛片18女人毛片免费96 | aaa国产一级毛片 | 一本大道香蕉大vr在线吗视频 | 按摩毛片| 久久中文字幕一区二区三区 | 在线视频综合网 | 久久精品亚洲综合 | 国产高清国产专区国产精品 | 久草在线中文 | 欧美成人亚洲 | 毛片3| 羞羞色院91 | 天天干夜夜欢 | 狠狠色丁香婷婷久久综合考虑 |