• 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:如果有些元素需要点击才会出现就不好定位,可以采用点击后,在右键审查/检查元素

  • 相关阅读:
    luogu P4587 [FJOI2016]神秘数
    luogu P4042 [AHOI2014/JSOI2014]骑士游戏
    luogu P2597 [ZJOI2012]灾难
    一则胡乱科普
    NJU Static Program Analysis 09: Pointer Analysis II
    NJU Static Program Analysis 08: Pointer Analysis I
    NJU Static Program Analysis 07: Interprocedural Analysis
    NJU Static Program Analysis 06: Data Flow Analysis IV
    LianYunGang OI Camp: Contest #2
    NJU Static Program Analysis 05: Data Flow Analysis III
  • 原文地址:https://www.cnblogs.com/hherbk/p/14605435.html
Copyright © 2020-2023  润新知