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

【Selenium專題】元素定位之一簡單定位

系統 2076 0

UI自動化工具千變萬化、架構千變萬化,但都逃離不開的關鍵一步就是元素定位。下面以Selenium為例介紹常見的幾個元素定位方法

ID - 元素id屬性

WebElement El =?driver.findElement(by.id(“id”))

name- 元素name屬性

WebElement El=driver.findElement(by.name(“name”))

className -元素class屬性

WebElement El =?driver.findElement(by.className(“className”));

tagName- 元素標簽名

WebElement El =?driver.findElement(by.tagName(“button”))

linkText- 鏈接元素a的顯示文字

WebElement El =?driver.findElement(By.linkText("Inbox"));

partialLinkText

WebElement El =?driver.findElement(By.partialLinkText("Inbox"));


?

補充:以上知識遍地都有,不多贅述。但真實環境中遇到的DOM往往很復雜的多,下面我們來分析一下可能會遇到的幾種情況


1. 分級定位: 復雜環境可以先定位父級元素,然后再定位子元素,例如parentElement.findElement(By.***)

2.ID定位是最快速最準確的,但實際上需要開發人員的友好配合才能有唯一且確定的id可用,真實環境中往往會出現沒有id,id重復或者動態id(extjs和query都是動態id);若動態id有規律我們還能考慮使用正則表達式,否則只能老老實實另謀出路了。

3. 定位數組元素 :實際使用中className和tagName經常被用來定位數組元素,例如driver.findElement s (by.tagName(“**”))或driver.findElement s (by.className(“**”))

  例如,打開www.baidu.com,運行List<WebElement> Els=?driver.findElements(by.tagName(“a”));看看是不是得到了一個元素數組

4. className不允許使用復合類名做參數

? ?真實環境中元素往往使用復合類名(即多個class用空格分隔),使用className定位時要注意了,className的參數只能是一個class。

  例如,打開http://hao.360.cn/,我們要使用className定位這個元素

      
        <
      
      
        a 
      
      
        
          
            class
          
          
            ="tab-item news"
          
        
      
      
         data-page
      
      
        ="http://sh.qihoo.com/daohang/index1.html"
      
      
         hidefocus
      
      
        ="false"
      
      
        href
      
      
        ="./brother.html#!news"
      
      
        >
      
      新聞頭條
      
        </
      
      
        a
      
      
        >
      
    

  1)執行driver.findElements(by.className("news")),成功定位到元素

  2)執行driver.findElements(by.className("tab-item news")),定位失敗,報錯信息: Compound class names not permitted,意思是 不允許使用 復合類名稱

  分析:className的參數僅允許是一個class,此處 class="tab-item news" 是復合類名,直接使用會報錯

5. linkText與 partialLinkText

  遇到文字鏈接元素,首先考慮使用linkText定位,那它與partialLinkText有什么區別與特性吶?

  1)?linkText=鏈接文字,表示精準匹配鏈接文字;partialLinkText=部分鏈接文字,表示模糊匹配鏈接文字。例如定位一下元素

      
        <
      
      
        a 
      
      
        target
      
      
        ="_blank"
      
      
         title
      
      
        =""
      
      
         href
      
      
        ="http://www.nuomi.com/?cid=bdsywzl"
      
      
        >
      
      勞動節不勞動,吃喝玩樂5.1元起!
      
        </
      
      
        a
      
      
        >
      
    

?

    |?driver.findElement(By.linkText("勞動節不勞動,吃喝玩樂5.1元起!"));

    |?driver.findElement(By.partialLinkText("吃喝玩樂"));

  2.都對大小寫敏感

?

?

    這篇文章對兩者進行了詳細的介紹并附有案例
    
      http://blog.csdn.net/aerchi/article/details/8931023
      


復雜定位:cssselector、xpath、javascript正在路上........

?

【Selenium專題】元素定位之一簡單定位


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩在线视频免费播放 | 日本不卡视频在线观看 | 亚洲欧美日韩中文v在线 | 天天做夜夜做久久做狠狠 | 亚洲欧美大片 | 91精品国产乱码久久久久久 | 一级毛片成人免费看a | 亚洲免费视频一区 | 国产高清国产精品国产k | 奇米777视频国产 | 北条麻妃手机在线观看 | 欧美一区二区三区在线视频 | 天天操天天爱天天干 | 中文字幕一区二区日产乱码 | 成人嫩草研究院网站进 | 色妞bbbb女女女女 | 成人黄色一级片 | 国产综合亚洲欧美日韩一区二区 | 欧美久久久久久久久 | 国产欧美一区二区精品久久久 | 免费真实播放国产乱子伦 | 国产成人一区免费观看 | 日韩免费一级毛片欧美一级日韩片 | 成人在线免费观看视频 | 久久一区二区三区不卡 | 欧美精品国产第一区二区 | 99精品在线| 久久国产精品999 | 狠狠色噜噜狠狠狠狠69 | 狠狠久久久久久亚洲综合网 | 白蛇缘起3免费观看 | 久久在线资源 | 国产成人精品一区二区三区 | 国产美女久久久久 | 日韩一级视频免费观看 | 一本大道香蕉高清久久 | 国产精品合集久久久久青苹果 | 综合色天天 | 永久久久免费浮力影院 | 久久99热精品免费观看 | 99久久精品国产一区二区成人 |