zoukankan      html  css  js  c++  java
  • selenium--定位--CSS

    大家在使用selenium元素定位的时候,通常更多使用的是XPATHcss定位方式用得比较少

    但有时候css定位方式还是有一些优势的,

    优势1:一般情况下定位速度要比XPATH

    优势2:语法要比XPATH更简洁

     

    下面简要介绍一下css元素选择器的语法

    常见语法

    *

    通用元素选择器,匹配任何元素

    E

    标签选择器,匹配所有使用E标签的元素

    .info

    class选择器,匹配所有class属性中包含info的元素

    #footer

    id选择器,匹配所有id属性等于footer的元素

    E,F

    多元素选择器,同时匹配所有E元素或F元素,EF之间用逗号分隔

    E F

    后代元素选择器,匹配所有属于E元素后代的F元素,EF之间用空格分隔

    E > F

    子元素选择器,匹配所有E元素的子元素F

    E + F

    毗邻元素选择器,匹配紧随E元素之后的同级元素F (只匹配第一个)

    E ~ F

    同级元素选择器,匹配所有在E元素之后的同级F元素

    E[att='val']

    属性att的值为valE元素 (区分大小写)

    E[att^='val']

    属性att的值以val开头的E元素 (区分大小写)

    E[att$='val']

    属性att的值以val结尾的E元素 (区分大小写)

    E[att*='val']

    属性att的值包含valE元素 (区分大小写)

    E[att1='v1'][att2*='v2']

    属性att1的值为v1att2的值包含v2 (区分大小写)

    E:contains('xxxx')

    内容中包含xxxxE元素

    E:not(s)

    匹配不符合当前选择器的任何元素

     

    例如这样一段html代码的网页

    <div class="formdiv">

    <form name="fnfn">

    <input name="username" type="text"></input>

    <input name="password" type="text"></input>

    <input name="continue" type="button"></input>

    <input name="cancel" type="button"></input>

    <input value="SYS123456" name="vid" type="text">

    <input value="ks10cf6d6" name="cid" type="text">

    </form>

    <div class="subdiv">

    <ul id="recordlist">

    <p>Heading</p>

    <li>Cat</li>

    <li>Dog</li>

    <li>Car</li>

    <li>Goat</li>

    </ul>

    </div>

    </div>

    匹配示例:

    locator

    匹配

    css=div

    css=div.formdiv

    <div class="formdiv">

    css=#recordlist

    css=ul#recordlist

    <ul id="recordlist">

    css=div.subdiv p

    css=div.subdiv > ul > p

    <p>Heading</p>

    css=form + div

    <div class="subdiv">

    css=p + li

    css=p ~ li

    二者定位到的都是 <li>Cat</li>

    但是storeCssCount的时候,前者得到1,后者得到4

    css=form > input[name=username]

    <input name="username">

    css=input[name$=id][value^=SYS]

    <input value="SYS123456" name="vid" type="hidden">

    css=input:not([name$=id][value^=SYS])

    <input name="username" type="text"></input>

    css=li:contains('Goa')

    <li>Goat</li>

    css=li:not(contains('Goa'))

    <li>Cat</li>

  • 相关阅读:
    ajax请求默认都是异步请求,怎么变为同步请求
    TP6跨域问题
    localStorage使用总结
    win10 windows management instrumentation cpu占用高解决方法
    限制性股票-股份支付
    可转债会计分类
    其他权益工具投资的交易费用计入成本
    年数总和法
    外币货币性项目汇兑差额应当计入当期损益
    chrome怎么设置点击窗口在新窗口打开
  • 原文地址:https://www.cnblogs.com/i16i1007/p/6667329.html
Copyright © 2011-2022 走看看