• selenium学习(三)-定位页面元素(Target)


    对于很多selenium命令,target域是必须的。Target在web页面范围内识别UI元素,它使用locatorType(定位类型)=location(定位值)的格式。

     html>
    
    <body>
    
    <form id= "loginForm" >
    
    <input name= "username" type= "text" />
    
    <input name= "password" type= "password" />
    
    <input name= "continue" type= "submit" value= "Login" />
    
    <input name= "continue" type= "button" value= "Clear" />
    
    <a href= "continue.html" >Continue</a>
    
    </form>
    
    </body>
    
    </html>
    

    1、identifier定位
    如果没有定位类型,那么它是一种默认的方式。如果使用这种方式,IDE首先会寻找首个id属性等于定位置的页面元素,如果id没有,那么会寻找首个name属性等于定位值的页面元素,如果都没有,则定位失败。 identifier = 定位值。

    2、id定位:id = 定位值

    3、name定位:name = 定位值

    4、XPath定位
    XPath表达式用于XML文档中定位节点,当找不到合适的id或name属性来定位元素时,就可以用XPath。可以使用绝对路径(不推荐),也可以使用id或name属性,如果XPath表达式以“//”开头,那么可以省略“xpath=”,也可不省。
    xpath=/html/body/form[1] //绝对路径(html的任何轻微改变都会导致失败)
    //form[1] //HTML中的第三个form元素
    xpath=//form[@id='loginForm'] //id为loginFrom的元素
    //input[@name='username'] //input元素且其name为‘username’
    //form[@id='loginForm']/input[1] //针对id为‘loginForm’的form,定位它的第一个input元素
    //input[@name='continue'][@type='button'] //name为‘continue’且type为‘button’的input
    //form[@id='loginForm']/input[4] //id为‘loingForm’的form,定位它的第四个input元素。

    扩展阅读:
    W3C XPath Recommendation: http://www.w3.org/TR/xpath/
    XPath Tutorial: http://www.zvon.org/xxl/XPathTutorial/General/examples.html
    http://www.w3.org/TR/xpath/
    Firefox插件,可以帮助你获取页面元素的XPath:
    XPath Checker Firebug

    5、通过链接文字定位
    link = 定位值

    6、DOM定位
    Document Object Model 被用于描述HTML文档,可以使用javaScript来访问。这一定位策略通过javaScript评估页面上的元素,可以使用分级符号来简化元素定位。
    因为DOM定位以“document”开始,所以“dom=”标签并不是必须的。
    dom=document.getElementById('loginForm') // 定位页面元素form
    dom=document.forms['loginForm'] // 定位页面元素form
    dom=document.forms[0] // 定位页面元素form
    document.forms[0] .usernam //定位页面元素username
    document.forms[0] .elements[3] //定位页面元素continue,它是form的第四个元素

    7、CSS定位
    CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML和XML文档的表现。CSS使用选择器来为页面元素绑定属性。这些选择器可以被selenium用作另外的定位策略。
    css=form#loginForm //定位页面元素form
    css=input[name="username"] //定位页面元素username
    css=input.required[type="text"] //定位页面元素,其类型为text
    css=input.passfield //定位页面元素,其类型为password
    css=#loginForm input[type="button"] //定位页面元素,其类型为button
    css=#loginForm input:nth-child(2) //定位页面元素passfield,且它为from的第二个input子元素

    扩展阅读:
    http://www.w3.org/TR/css3-selectors/

    提示:很多有经验的selenium用户推荐CSS定位方式,因为它比XPath更快。而且可以在HTML文件中找到更复杂的对象。

    ps:本文参考博主 虫师的博文,http://www.cnblogs.com/fnng/archive/2012/01/12/2321117.html,以及参考书《selenium自动化测试指南》,赵卓著、《零基础实现web自动化测试》,温素剑著。

  • 相关阅读:
    asp.net string有多行文字
    asp.net设置gridview页码显示遇到的问题
    asp.net button浏览器端事件和服务器端事件
    GridView 控制默认分页页码间距 及字体大小
    复合主键与联合主键(转载)
    vsCode 列选择、列选中、选中列、选中多列(转载)
    可能有用的技术社区(转载)
    SQL 用于各种数据库的数据类型(转载) sqlserver 数据类型 取值范围 长度
    TypeError: value.getTime is not a function (elementUI报错转载 )
    工作1年3个月总结(201707-201810 )
  • 原文地址:https://www.cnblogs.com/lxoc/p/6719371.html
Copyright © 2020-2023  润新知