Selenium元素定位之Xpath

时间:2023-03-10 06:30:28
Selenium元素定位之Xpath

Xpath非常强大,使用Xpath可以代替前六种基本的定位方式,这种定位方式几乎可以定位到页面上的任何元素。

Xpath简介

Xpath就是xml path,是一种在xml中查找信息的语言,因为html文档就是一个标准的xml,所以可以用Xpath来定位页面元素。

通过绝对路径进行定位

WebElement i = driver.findElement(By.xpath("/html/body/div/input"));
//绝对路径以 "/" 开头,让Xpath从文档的根节点开始解析
//通过绝对路径进行定位一旦页面结构发生变化,路径也就随之失效必须重写,所以尽量的不适用绝对路径进行定位

通过相对路径进行定位

WebElement i = driver.findElement(By.xpath("//input"));
//查找第一个input
//相对路径以 "//"开头,让Xpath从文档的任何元素节点开始解析

通过标签属性进行定位

WebElement i = driver.findElement(By.xpath("//input[@type='submit']"));
//查找input属性type值为submit的页面元素
//通过标签属性定位的格式为 //标签[@属性='属性值']

通过索引位置进行定位

WebElement i = driver.findElement(By.xpath("/html/body/div[3]"));
//查找body下的第三个div

文本定位text()

WebElement i = driver.findElement(By.xpath("//a[text()='新闻']"));
//查找文本内容为“新闻”的a标签

模糊匹配contains

WebElement i = driver.findElement(By.xpath("//input[contains(@type,'te')]"));
//查找属性type值包含te的input