zoukankan      html  css  js  c++  java
  • Selenium-Xpath使用方法

    什么Xpath?

    Xpath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素

    工具

    Xpath的练习安装火狐浏览器后,下载插件,FireBug

    Xpath

    注:默认死格式 先写//*代表定位页面下所有元素

    1.Xpath支持id,class,name定位功能

    通过ID定位
    //*[@id='i1']
    //*代表获取所有元素//*[@id='i1']
    []固定格式 @引用某样属性 id='xxx'
    通过class定位
    //*[@class='class_name']
    通过name定位
    //*[@name='name']

    2.如果标签没有ID,class,name三种属性,Xpath还支持属性定位功能

     1 @代表以属性定位,后面可以直接标签中任意属性

    2 //*[@other='attribute'] 

    3.当标签的属性重复时,Xpath提供了通过标签来进行过滤

    将*换成任意标签名,则可根据标签进行筛选
    //input[@placeholder='用户名']

    4.当标签页重复时,Xpath提供了层级过滤

    例如:找不到儿子,那么就先找他的爸爸,实在不行可以在找他的爷爷

    支持通过/进行层级递进,找到符合层级关系的标签
    //form/div/input[@placeholder='用户名']
    当层级都重复时,可以通过单个层级的属性进行定位
    //form/div[@class='login-user']/input
    
    
    
    //div[@class='inner'][3]
    //div[@class='inner'][3]/input

    5.一个元素它的兄弟元素跟它的标签一样,这时候无法通过层级定位到。因为都是一个父亲生的,多胞胎兄弟。Xpath提供了索引过滤

    通过索引,在List中定位属性,与python的索引有些差别,Xpath从1
    开始
    //select[@name='city'][1]/option[1]
    //div[@class=''driver][1]/div[@class='inner'][3]/input

    6.上面集中如果都用上了之后还重复的话,我们就可以使用Xpath提供的终极神器,逻辑运算定位。and或or

    通过and来缩小过滤的范围,只有条件都符合时才能定位到
    //select[@name='city' and @size='4' and @multiple='multiple' ]
    //select[@size='4' and @multiple='multiple']
    or 就相反了,只要这些筛选中,其中一个出现那么就匹配到了
    //select[@name='city' or @size='4']
  • 相关阅读:
    Flutter form 的表单 input
    FloatingActionButton 实现类似 闲鱼 App 底部导航凸起按钮
    Flutter 中的常见的按钮组件 以及自 定义按钮组件
    Drawer 侧边栏、以及侧边栏内 容布局
    AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换 通过TabController 定义TabBar
    清空路由 路由替换 返回到根路由
    应对ubuntu linux图形界面卡住的方法
    [转] 一块赚零花钱
    [转]在树莓派上搭建LAMP服务
    ssh保持连接
  • 原文地址:https://www.cnblogs.com/wxcx/p/8922802.html
Copyright © 2011-2022 走看看