Web要素配置のCSS Selector

4595 ワード

XPathとCSS Selectorの違い
前回の記事では、Webオートメーションテストでxpathで要素の位置決めを行う方法をまとめましたが、CSS Selectorは何ですか?実は、使用者にとって、どの習慣を使うかはどちらを選ぶのです.総じて言えば、XPathはもっと強くて、CSSセレクタは通常文法が簡潔で、運行速度がもっと速いです.
Target
CSS 3
XPath
すべての要素
*
//*
すべてのP要素
p
//p
すべてのp要素のサブ要素
p > *
//p/*
IDによる要素の取得
/エスケープ/#id
//*[@id= ‘id’]
Classによる要素の取得
.class
//*[contains(@class, ‘class’)]
属性を持つ要素
*[title]
//*[@title]
すべてのP要素の最初のサブ要素
p > *:first-child
//p/*[0]
サブエレメントaを持つすべてのPエレメント
実現できない
//p[a]
次の兄弟要素
P + *
//p/following-sibling::*[0]
Seleniumはxpathを使用して位置決めする際にページを巡回する方式を採用しているため、性能上CSSセレクタを採用する方式がより優れている.Xpathは性能指標が悪いが、ブラウザで比較的良いプラグインサポートがあり、位置決め要素が比較的便利であり、性能要求が厳しいシーンに対しては、xpathでcssを書き換える方式で置き換えることを考慮し、以下の2つの方式を比較することができる.
XPATH  : id('index')/div[2]/div/ul/div/li[2]/a
CSS     : #index div:nth-of-type(2) div ul li:nth-of-type(2) a
  : #index>div:nth-of-type(2)>div>ul>li:nth-of-type(2)>a

実戦の蓄積:
  • ">"は直接サブノードを表し、""スペースは任意のサブノード
  • を表す.
    css=div.resource-list>div:nth-child(1)>div:nth-child(1) div.progress
  • 非隠蔽
  • css=div:not(.hidden) div.resource-buttons
  • 部分マッチング
  • css=.dijitReset.dijitInline.dijitButtonText:contains("Join Event")
    
    css=a[href*='/scheduledDeployment/45d67']    
    
    css=a[href^='/scheduledDeployment/45d67']  xxx   
    
    css=a[href$='/scheduledDeployment/45d67']  xxx   
    
  • classに付いているスペースなら、使います.スペースの代わりに:
  •  
  • サブノードおよび兄弟ノード
  • div+p:      

    p~ul:

    p:nth-of-type(2):

    p:nth-last-child(2):

    • W3School
    • W3C

    : xpath css path
    , Selenium IDE , xpath css, Selenium IDE , , :

    dojo , :
    1. dojo html , html id html ,dojo , ” + ” html id, selenium .
    2. dojo Selenium IDE , , 。
    3. dojo ajax , ajax , web , ( ) ajax , ( , ), element not found .

    Xpath , :

    Selenium Xpath
    http://blog.csdn.net/ywyxb/article/details/58601160