zoukankan      html  css  js  c++  java
  • CssSelector常用定位方式总结

    使用CssSelector来定位页面中的元素,是经常使用的方式,本文列出典型的使用方法。

    转载的,原文链接:https://blog.csdn.net/hou_angela/article/details/80519718

    1.  根据 标签定位 tagName(定位的是一组,多个元素)

    e.g:find_element_by_cssSelector("div")

    2. 根据 id属性定位(注意id使用#表示)

    e.g: find_element_by_cssSelector("#eleid")

    e.g: find_element_by_cssSelector("div#eleid")

    3. 根据className属性定位(注意class属性使用.)

    e.g: find_element_by_cssSelector("div.eleclass")

    4. 根据元素属性定位

     4.1 精确匹配:

         e.g: find_element_by_cssSelector("div[name=elename]")  #属性名=属性值,精确值匹配

         e.g: find_element_by_cssSelector("a[href]") #是否存在该属性,判断a元素是否存在href属性

    注意:如果 class属性值里带空格,用.来代替空格

      4.2 模糊匹配

         e.g: find_element_by_cssSelector("div[name^=elename]") #从起始位置开始匹配

         e.g:  find_element_by_cssSelector("div[name$=name2]") #从结尾匹配

         e.g: find_element_by_cssSelector("div[name*=name1]") #从中间匹配,包含

    4.3 多属性匹配

        e.g: find_element_by_cssSelector("div[type='eletype][value='elevalue']") #同时有多属性

       e.g: find_element_by_cssSelector("div.eleclsss[name='namevalue'] #选择class属性为eleclass并且name为namevalue的div节点

        e.g: find_element_by_cssSelector("div[name='elename'][type='eletype']:nth-of-type(1) #选择name为elename并且type为eletype的第1个div节点

    5. 定位子元素 (A>B)

       e.g: find_element_by_cssSelector("div#eleid>input") #选择id为eleid的div下的所有input节点

       e.g: find_element_by_cssSelector("div#eleid>input:nth-of-type(4) #选择id为eleid的div下的第4个input节点

       e.g: find_element_by_cssSelector("div#eleid>nth-child(1)") #选择id为eleid的div下的第一个子节点

    6. 定位后代元素 (A空格B)

       e.g: find_element_by_cssSelector("div#eleid input") #选择id为eleid的div下的所有的子孙后代的 input 节点

       e.g: find_element_by_cssSelector("div#eleid>input:nth-of-type(4)+label #选择id为eleid的div下的第4个input节点的相邻的label节点

       e.g: find_element_by_cssSelector("div#eleid>input:nth-of-type(4)~label #选择id为eleid的div下的第4个input节点之后中的所有label节点

    7. 不为

      e.g: find_element_by_cssSelector("div#eleid>*.not(input)") #选择id为eleid的div下的子节点中不为input 的所有子节点

      e.g: find_element_by_cssSelector("div:not([type='eletype'])") #选择div节点中type不为eletype的所有节点

    8. 包含Bycontent

       e.g: find_element_by_cssSelector("li:contains('Goa')") # <li>Goat</li>

       e.g: find_element_by_cssSelector("li:not(contains('Goa'))) # <li>Cat</li>

    9. by index

       e.g: find_element_by_cssSelector("li:nth(5)")

  • 相关阅读:
    Ubuntu 分辨率显示出错,分辨率不是最佳分辨率的解决办法
    xmr monero miner
    Win+数字快速启动/切换指定程序
    ajax 提交 form表单 ,后台执行两次的问题
    uploadify HTTP 302 错误如何解决?
    Uploadifive 上传'fileType'格式如何限制?
    服务器更新了php版本报错(PHP7.3)
    SourceTree软件
    Csdn账号如何注销?
    鸡翅怎么做好吃呢?
  • 原文地址:https://www.cnblogs.com/djlbolgs/p/12506223.html
Copyright © 2011-2022 走看看