【Selenium】Web元素定位

  在Selenium Webdriver中,页面中的每一个web元素都可以对应到一个WebElement对象。WebElement对象可以通过WebDriver的findElement方法来获得。
  findElement方法可以返回一个元素或一个元素列表,这个方法通过定位器By来查找元素。
  在元素上点击右键–查看元素,在Firefox自带的HTML查看器中进行查看。

1 元素ID

  使用ID定位元素是最有效和最推荐的方法。

<element id = "value"> 

在这里插入图片描述

应用

WebElement element = driver.findElement(By.id(“kw”));


2 元素Name

<element name = "value"> 

在这里插入图片描述

应用

WebElement element = driver.findElement(By.name(“wd”));


3 元素Class Name

<element clsss = "value">

在这里插入图片描述

应用

WebElement element = driver.findElement(By.className(“s_ipt”));


4 超链接文本

<element href="value">LinkText</element>

在这里插入图片描述

应用

WebElement element = driver.findElement(By.linkText(“关于百度”));


5 缺省超链接文本

<element href="value">PartialLinkText</element>

在这里插入图片描述

应用

**WebElement element = driver.findElements(By.PartialLinkText(“关于”));


6 元素Tag Name

<tag class='value'> </tag>

在这里插入图片描述

应用

webElement element = driver.findElement(By.tagName(“input”));
在页面中通常会有多个同样的tab,在元素定位的过程中,findElement只会返回页面树状结构中自上而下第一个满足条件的元素。


7 XPath

XPath(XML Path Language)XML路径语言。XPath是一种查询语言,用来确定XML文档中某部分位置的语言。
XML(eXtensible Markup Language)可扩展标记语言
HTML(HyperText Markup Language)超文本标记语言

7.1 绝对路径  /

1、选择根元素AAA: /AAA
在这里插入图片描述
2、选择AAA的所有CCC子元素: /AAA/CCC
在这里插入图片描述
3、选择AAA的子元素DDD的子元素BBB:/AAA/DDD/BBB
在这里插入图片描述

7.2 模糊匹配路径  //

1、选择所有BBB元素://BBB
在这里插入图片描述
2、选择所有父元素是DDD的BBB元素://DDD/BBB
在这里插入图片描述

7.3 父节点  . .

1、选择所有BBB元素的父节点://BBB/. .
首先模糊匹配找到所有BBB节点,接着绝对匹配找到这些BBB节点的父节点
在这里插入图片描述

7.4 指定顺序  [?]

1、选择AAA的第二个BBB子元素:/AAA/BBB[2]
不同于编程中数组下标是从0开始的,xpath定位时,下标是从1开始的。
在这里插入图片描述
2、选择AAA的最后一个BBB子元素:/AAA/BBB[last()]
在这里插入图片描述

7.5 全匹配  *

1、选择所有/AAA/CCC/DDD下的元素:/AAA/CCC/DDD/*
在这里插入图片描述
2、选择所有/AAA下的孙节点BBB元素:/AAA/*/BBB/
在这里插入图片描述

7.6 元素属性  @

1、选择有id属性的BBB元素://BBB[@id]
在这里插入图片描述
2、选择有id="pwd"的BBB元素://BBB[@id=“pwd”]
在这里插入图片描述

7.7 文本  Text

1、选择收件人的值是韩梅梅的元素:
/邮件/收件人[1]
//收件人[text()=“韩梅梅”]
在这里插入图片描述

7.8 属性模糊匹配  start-with()与contains()

1、选择有id属性且以name开始的元素:
//*[start-with(@id,“name”)]
//*[contains(@id,“name”)]
在这里插入图片描述
  在火狐浏览器中可以安装Xpath Checker来辅助得到Xpath路径。但是我在火狐的工具中没有找到它,找到了另一个叫Try Xpath的工具,功能也差不多。
在这里插入图片描述
例如,通过xpath找到百度首页的搜索输入框,使用Try Xpath检查是否正确。
可以看到 //input[@name=“wd”] 正确定位到了搜索输入框。
在这里插入图片描述

//input[@value=“百度一下”]在这里插入图片描述

元素定位总结

  • 元素具有ID属性,优先使用ID定位。
  • 其次使用name属性,但是需要确定是否唯一。
  • 定位链接元素时,考虑使用Link Text。
  • 当其他定位方法无法准确定位时,可以使用Xpath定位。
  • Xpath是通用的定位方法,但使用时需要注意Xpath语法的稳定性。比如,使用绝对路径和元素属性这两种方式时,使用元素属性更为推荐,因为绝对路径发生变化的可能性较大。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值