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

  • 相关阅读:
    Running as a packaged application--- -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n
    Druid 专题
    java8中的localdate和localtime用法举例
    Spring处理跨域请求
    数据库版本管理工具Flyway——基础篇
    QQ邮箱开启SMTP服务的步骤
    QQ邮箱如何设置SMTP代理收发邮件
    SMTP协议简介
    Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException
    Android客户端与服务器交互中的token
  • 原文地址:https://www.cnblogs.com/hherbk/p/14605435.html
Copyright © 2011-2022 走看看