• 3.使用Xpath定位元素


    Xpath是通过绝对路径定位元素

    Xpath定位元素

    1.xml路径语言:用来确定XML文档中某部分位置的语言;

    2.Xpath用于在XML文档中通过元素和属性进行导航

    3.Xpath是一个W3C标准

    4.将html看成树形结构

    表达式 结果 说明
    /xxx 选取跟节点xxx  
    /xxx/yyy 根据绝对路径选择元素yyy  
    //xxx 整个文档扫描,找到所有xxx元素  
    //xxx/yyy 所有父元素为xxx的yyy元素  
    . 选取当前节点的父元素节点  
    .. 选取父元素地址  
    //xxx[@id] 选取所有xxx元素中有id属性的元素  
    //xxx[@id=yyy] 选取所有xxx元素id属性为yyy的元素

    写一个html小例子便于练习test.html

    <!DOCTYPE html>
    <html>
    <head>
        <title>selenium</title>
    </head>
    <body>
    <form>
        firstname
        <input type="text" name="firstname" id="f">
        <br>
        lastname
        <input type="text" name="lastname" >
    </form>
    <br>
    <p>
        age
        <input type="text" name="age" id="a">
    </p>
    </body>
    </html>

    b.get(r'C:UsersasusDesktopsele est.html')  #加载页面

    inputs = b.find_elements_by_xpath('/html/body/form/input') #查找form下的input有两个

    inputs.__len__() #2

    >>> inputs[0].get_attribute('name')
    'firstname'

    >>> inputs[1].get_attribute('name')
    'lastname'

    inputs[0].send_keys('zhang')
    inputs[1].send_keys('san')

    看到界面


    >>> inputs = b.find_elements_by_xpath('//input') #查找本页面的所有input标签
    >>> inputs.__len__()
    3

    inputs[2].send_keys(30)#给张三输入年龄30

    >>> inputs = b.find_elements_by_xpath('//input[@id]') #查找含有id属性的input
    >>> inputs.__len__()
    2

    表达式 结果
    //*[count(xxx)=2] 统计xxx元素个数=2的节点
    //*[local-name()='xxx'] 找到tag为xxx的元素
    //*[starts-with(loacal-name(),'x')] 找到所有tag以x开头的元素
    //*[contains(loacal-name(),'x')] 找到所有tag包含x的元素
    //*[string-length(loacal-name())=3] 找到所有tag长度为3的元素
    //xxx|//yyy 多个路径查找
    //[not(@id)]  
  • 相关阅读:
    H5上传图片
    关于mysql本地无法连接问题
    node.js、git、bootstrap等安装配置
    angularJS2-日志
    day21-python操作mysql1
    day20-正则表达式练习
    day19-python的正则表达式2
    day18-python的正则表达式
    day17-json格式转换
    day16-python常用的内置模块2
  • 原文地址:https://www.cnblogs.com/zhaojiaxiaomei1/p/8873037.html
Copyright © 2020-2023  润新知