zoukankan      html  css  js  c++  java
  • selenium定位方法总结

    selenium定位方法总结
    1.通过id 定位
    findElement(By.id("su"))
    findElement(By.id())方法用于元素中id 属性的定位。
     
    2.通过name 定位
    findElement(By.name("wd"))
    findElement(By.name())方法用于元素中name 属性的定位。
     
    3.通过class 定位
    findElement(By.className("bg s_btn"))
    findElement(By.className())方法用于元素中class 属性的定位。
     
    4.通过tag 定位
    findElement(By.tagName("input"))
    findElement(By.tagName())方法通过元素的tag name 来定位元素。
     
    5.通过link 定位
    findElement(By.linkText("贴吧"))
    findElement(By.linkText())方法通过元素标签对之间的文本信息来定位元素。
     
    6.通过partial link 定位
    findElement(By.partialLinkText("文本链接"))
    findElement(By.partialLinkText())方法通过元素标签对之间的部分文本信息来定位元素。
     
    7.通过XPath 定位
    findElement(By.xpath("//input[@id='kw']"))
    //表示当前页面某个目录下,input 表示定位元素的标签名,[@id='kw'] 表示这个元素的id 属性值等于kw。
    findElement(By.xpath("//*[@class='bg s_btn']"))
    如果不想指定标签名也可以用星号(*)代替。
    层级与属性结合:
    findElement(By.xpath("//span[@class='bg s_ipt_wr']/input"))
    span[@class='bg s_ipt_wr'] 通过class 属性定位到是父元素,后面/input 也就表示父元素下面标签名为input 的子元素。
    使用逻辑运算符:
    findElement(By.xpath("//input[@id='kw' and @class='su']/span/input"))
    同时使用id 和class 来定位这个元素。
     
    eg:
    页面元素既没有id号,又没有唯一的class名称,它的父节点是一个div,拥有class名为paginatorBatchSizes,而它自己本身是一个span元素,那么By.xpath("//div[@class='paginatorBatchSizes']/span")就能拿到这个元素。
     
    starts-with 顾名思义,匹配一个属性开始位置的关键字
    contains 匹配一个属性值中包含的字符串
    text() 匹配的是显示文本信息,此处也可以用来做定位用
    eg: //input[starts-with(@name,'name1')]     查找name属性中开始位置包含'name1'关键字的页面元素
         //input[contains(@name,'na')]         查找name属性中包含na关键字的页面元素
         百度搜索
         xpath写法为 //a[text()='百度搜索'] 
         或者 //a[contains(text(),"百度搜索")]
     
     
    8.通过CSS 定位
    通过class 属性定位:
    findElement(By.cssSelector(".s_ipt"))
    findElement(By.cssSelector())方法用于CSS 语言定位元素,点号(.)表示通过class 属性来定位元素。
    通过id 属性定位:
    findElement(By.cssSelector("#su"))
    井号(#)表示通过id 属性来定位元素。
    通过标签名定位:
    findElement(By.cssSelector("input"))
    在CSS 语言中用标签名定位元素不需要任何符号标识,直接使用标签名即可,但我们前面已经了解到标签名重复的概率非常大,所以通过这种方式很难唯一的标识一个元素。
    通过父子关系定位:
    findElement(By.cssSelector("span > input"))
    上面的写法表示有父亲元素,它的标签名叫span,查找它的所有标签名叫input 的子元素。
    通过属性定位:
    findElement(By.cssSelector("input[]"))
    在CSS 当中也可以使用元素的任意属性,只要这些属性可以唯一的标识这个元素。
    组合定位:
    findElement(By.cssSelector("span.bg s_ipt_wr > input.s_ipt"))
    有一个父元素,它的标签名叫span,它有一个class 属性值叫bg s_ipt_wr,它有一个子元素,标签名叫input,并且这个子元素的class 属性值叫s_ipt。

     
  • 相关阅读:
    Oracle Instant Client(即时客户端) 安装与配置
    面试中经典的数据库问题
    MySQL 大表优化方案
    mysql中Timestamp,Time,Datetime 区别
    HTML学习之给div高度设置百分比不生效的问题
    textarea文本域宽度和高度width及height自动适应实现代码
    JAVA基础----java中E,T,?的区别?
    去除ArrayList集合中的重复自定义对象元素
    sql select中加入常量列
    mysql 将null转代为0
  • 原文地址:https://www.cnblogs.com/vanya/p/6743095.html
Copyright © 2011-2022 走看看