zoukankan      html  css  js  c++  java
  • web自动化测试--元素定位

     (一)基础的定位方法

    1.通过元素的属性,如

    idfind_element_by_id("kw")
    name ,find_element_by_name("wd")
    class_name - 只支持一个class值    ,find_element_by_class_name("s_ipt") 
    tag_name  ,find_element_by_tag_name("input")
    只针对a元素:
    link_text, find_element_by_link_text("地图")
    partial_link_text ,find_elements_by_partial_link_text("hao")

    (二)多个属性组合来找元素或者通过其它的关系来找元素

    1.xpath定位,简单方法,浏览器F12中,右键copy--copy xpath。但是copy下来的定位,可能每次的表达式不一样

    建议用相对定位,以//开头

    (1)//标签名称[@属性=值],如://i[@class="ing"],//*[@*="ing"]

    (2)如果找出来两个一样的元素,在通过上级来锁定二层//,表示一级一级的去找。具体用法://一级元素//二级元素 

    注意:/表示查找的是父子关系,一般用//表示没有限制只是父子关系

    (3)文本匹配://*[text()=值] ,//*[text()="百度首页"]

    (4)包含//标签名[contains(@属性,"值")] 或者//标签名[contains(text(),"值")] 

    (5)逻辑运算匹配 //标签名[@属性值=值 and/or @属性值=值]

    (6)轴定位轴定位,通过关系来定位,注意要用/,因为需要限制下只是父子关系

    已知元素/轴名称::标签名称[@属性=值]   

    已知元素/轴名称::*没有限制某个标签

    已知元素定位,可以用前面的定位方式

    轴名称:
            ancestor:祖先结点 包括父
            parent:父结点   给g
            preceding: 当前元素节点标签之前的所有结点。(html页面先后顺序)
            preceding-sibling: 当前元素节点标签之前的所有兄弟结点
            following: 当前元素节点标签之后的所有结点。(html页面先后顺序)
            following-sibling:当前元素节点标签之后的所有兄弟结点
     
    例子://p[@title="值"]/preceding-sibling::p[@class="stuno"]

     find_element_by_xpath('表达式')

    element = driver.find_element(By.XPATH,'表达式'),默认取第一个

    find_elements()

     2.css_selector css选择器定位

    find_element_by_css_selector('input#kw.s_ipt')

    ps:如果有些元素需要点击才会出现就不好定位,可以采用点击后,在右键审查/检查元素

  • 相关阅读:
    EJB>依赖注入(dependency injection) 小强斋
    EJB>自定义安全域 小强斋
    EJB>定时服务(Timer Service) 小强斋
    EJB>依赖注入(dependency injection) 小强斋
    EJB>定时服务(Timer Service) 小强斋
    EJB>安全服务的具体开发 小强斋
    EJB>JMS(Java Message Service)和消息驱动bean 小强斋
    EJB>拦截器(Interceptor) 小强斋
    《做最好的员工》第二章:好员工擅长合作
    教你29招,让你在社交,职场上人人对你刮目相看 !
  • 原文地址:https://www.cnblogs.com/hherbk/p/14605435.html
Copyright © 2011-2022 走看看