Selenium 8种基本定位方式

Selenium 8种基本定位方式

  • By ID
  • By xpath
  • By css
  • By class Name
  • By name
  • By tag name
  • By link text
  • By partial link text

By ID定位元素

使用ID是最常用定位页面中的元素(如果元素存在id的话),W3C标准推荐开发者提供元素id属性(区别其它元素,具有唯一性不可重复)
备注:建议一般元素如果存在id的话率先使用By ID方式定位元素,因为在实际情况中页面元素可能增加相同其它属性例如name=password,以及导致xpath定位不准确。(以下讲解定位方式具体参考百度首页定位元素)
这里写图片描述

Java:WebElement searchBar = driver.findElement(By.id("kw"));//ID方式定位到百度首页中的搜索框

By xpath定位元素

Xpath,一种XML路径语言,是一种用于从XML中选择节点的语言。所有主流浏览器都支持Xpath,关于Xpath入门你可以点击这里Xpath入门提示:在chrome浏览器中可以定位到元素后,右键点击选择copy xpath
备注:一般使用Xpath定位元素可以定位到绝大多数元素,所以也是比较常用的一种定位方式,Xpath分为相对定位和绝对定位。下面例子是 使用的相对定位方式(较方便)

Java:WebElement searchBar = driver.findElement(By.xpath("//*[@id="kw"]");//Xpath方式定位到百度首页中的搜索框

By css定位元素

CSS,是一种用来描述用标记语言写的文档的样式(外观和格式),如HTML或XML。跟Xpath同样也分为相对定位和绝对定位(以下例子是讲解相对定位方式),css跟xpath的区别在于css只可以从上往下,而xpath既可以从上往下也可以从下往上,也就是说使用xpath可以先定位到子元素然后定位到父级元素。

Java:WebElement searchBar = driver.findElement(By.cssSelector("#kw"));//css方式定位到百度首页中的搜索框

以上元素定位方式,我觉得在自动化实践中用的比较多的定位方式。

By class Name

通过元素的class 属性进行定位

Java: WebElement element = driver.findElement(By.className(element class));

By name

通过元素的name属性进行定位

Java:WebElement element = driver.findElement(By.name(element name));

By tag name

通过元素标签名进行定位例如

Java:WebElement element = driver.findElement(By.tagName(element tag));

通过链接文字进行定位元素,例如登录链接

Java:WebElement element = driver .findElement(By.linkText(linkText));

通过部分链接文字进行定位元素

Java:WebElement element = driver.findElement(By.partialLinkText(linktext))

总结

以上描述只是为了作为笔记便于查阅,同时建议对By ID/By Xpath/ By CSS这几种方式做到熟悉掌握,关于Xpath和CSS高级定位将会在下面讲解,这极大方便快速定位元素。对于定位元素的使用优先级,个人认为元素如果有ID优先使用By ID定位方式,其次再考虑到Xpath或者CSS定位方式。如果对于本篇文章有错误之处,有不恰当之处请指出,谢谢。

  • 参考:Selenium Testing Tools Cookbook
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值