• 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)]  
  • 相关阅读:
    批处理详细教程1
    “无后端”的web应用开发模式
    给Notepad++换主题
    Github for Windows使用图文教程
    MongoDB操作数据库的几个命令(自己用)
    P2P实现的原理
    ios中摄像头/相册获取图片压缩图片上传服务器方法总结
    ffmpeg编译
    UIScrollView的contentSize、contentOffset和contentInset属性
    sqllite相关总结
  • 原文地址:https://www.cnblogs.com/zhaojiaxiaomei1/p/8873037.html
Copyright © 2020-2023  润新知