zoukankan      html  css  js  c++  java
  • selenium元素定位之css选择器

    在selenium元素定位时会用到css选择器选取元素,虽说xpath在定位元素时能解决大部分问题,但使用css选择器选取元素也是一种不错的选择。

    css相较与xpath选择元素优点如下

    • 表达式更加简洁
    • 一般情况css的运行速度是优于xpath的。

    常用的CSS选择器大致分为以下几种:

    1.基础选择器:

    基础选择器包括:

    • 标签:直接使用标签名,如下列:p
    • 类(class):“.”(英文句号)+class值
    • id:“#”+id值
    • 通配符:意为匹配所有元素, 用“*”表示

    事列:

    style标签中定义css选择器,以下为各个css选择方式
    选中的元素会根据css选择器中设置的不同颜色进行展示,以下事列同理。

    <!DOCTYPE html>
    <!--基础选择器-->
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Base Css</title>
        <!--style标签中定义css选择器,以下为各个css选择方式-->
        <!--id方式选择:“#”加id值,如下:#title-->
        <!--标签方式选择:直接使用标签名,如下:p-->
        <!--class方式选择:“.”(英文句号)加class值,如下:.text-->
        <style type="text/css">
            #title{
                color:red;
            }
            p{
                color:blue;
            }
            .text{
                color: green;
            }
        </style>
    </head>
    <body>
        <h3 id="title">这是id</h3>
        <p>这是标签</p>
        <div class="text">
            <em>这是类</em>
        </div>
    </body>
    </html>

    运行结果:

    2.组合选择器

    组合选择器就是将基础选择器的方法进行混合使用.有如下几种方式:

    • 标签指定选择:以标签为基本选择再连接id或class进行综合选择。如p#title
    • 后代选择:可以选择父类以下所有的子类(即既能选中儿子也能选中孙子及所有后代)。相比较子代选择,后代选择范围更广。选择选择使用空格连接 父类到子类及下面类的元素。
    • 子代选择:通过父类选择子类,只能选中子类,不包含子类的子类(即可以选中儿子,不能选中孙子)。使用“>”连接,子代选择只能选择子类中的第一个子类,不能选择子类的子类。
    • 并集选择:将多个选择使用“,”连接,表示“和”的意思

    事列如下:

    标签指定选择:

    <!DOCTYPE html>
    <!--标签指定选择器-->
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>标签指定选择</title>
        <style>
            p#a1{
                color:red;
            }
            p.aclass{
                color:blue;
            }
    
        </style>
    </head>
    <body>
        <div>
            
            <p>我想睡懒觉</p>
            <p id="a1">根本没睡醒</p>
            <p class="aclass">困得要死</p>
            
        </div>
    
    </body>
    </html>

    运行结果:

     后代选择器:

    <!DOCTYPE html>
    <!--后代选择器-->
    <html>

    <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    .xiaoyang>#idle>em{
    color: red;
    }

    </style>
    </head>
    <body>
    <div class="xiaoyang">
    <div id="idle">
    <em>该写什么</em>
    <em>不知道哎</em>

    <p>
    <em>这就有点小忧伤</em>
    <em>你忧伤个锤锤</em>
    </p>
    </div>
    </div>
    </body>

    </html>

    运行结果:

    子代选择器:

    
    
    <!DOCTYPE html>
    <!--= 子代选择器-->
    <html>

    <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    .xiaoyang #idle em{
    color: yellowgreen;
    }

    </style>
    </head>
    <body>
    <div class="xiaoyang">
    <div id="idle">
    <em>该写什么</em>
    <em>不知道哎</em>

    <p>
    <em>这就有点小忧伤</em>
    <em>你忧伤个锤锤</em>
    </p>
    </div>
    </div>
    </body>

    </html>

    运行结果:

     通过上面的比较可以看出:

    子代选择器只能选择到第一代子元素(可以选择到儿子,选不到孙子)

    后代选择器可以选择所有后代元素(既有儿子,还有孙子等)

    并集选择器:

    <!DOCTYPE html>
    <!--并集选择器-->
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
                p,#one,.two{
                    color: red;
                }
            </style>
        </head>
        <body>
            <p>我爱学习</p>
            <span id="one">我爱运动</span>
            <strong class="two">我爱睡觉</strong>
        </body>
    </html>

    运行结果:

    3.属性选择器

    属性选择器是运用标签中的属性进行定位,比如标签中常用的text属性等。

    事列:

    <!DOCTYPE html>
    <html>
    <!--属性选择器-->
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                p{
                    color: blue;
                }
                p[title="one"]{
                    color: red;
                }
                p[title~="two"]{
                    color: green;
                }
                p[title|="three"]{
                    color: pink;
                }
    
    
            </style>
        </head>
    
        <body>
            <p title="five">我爱学习</p>
            <p title="one">我爱运动</p>
            <p title="one two">我爱吃饭</p>
            <p title="three-four">我爱睡觉</p>
    
        </body>
    
    </html>

    运行结果:

     以上为常用css选择器的用法整理,若想了解其他类型选择器(比如伪类选择器),建议系统学习CSS。

     在此说明:该篇随笔中的事列部分借鉴自实验楼css课程,如有侵权立删!

    当你试图去用自己的言语去讲清一些事物时,你会明白对此事物的理解是融会贯通还是一知半解
  • 相关阅读:
    Swagger2文档生成器
    SSM中spring配置文件
    REDTful风格设计接口
    xss练习
    使用burp绕过token爆破用户名密码
    简单的内网渗透实验
    XSS Challenges
    一次简单的渗透
    vim进阶学习
    kali的部分学习
  • 原文地址:https://www.cnblogs.com/1211-1010/p/11608949.html
Copyright © 2011-2022 走看看