页面元素的定位方法
java元素定位中的写法
使用ID定位:driver.findElement(By.id(“ID值”));
使用name定位:driver.findElement(By.name(“name值”))
使用链接的全部文字定位:driver.findElement(By.LinkText(“链接的全部文字”))
使用部分链接文字定位:driver.findElement(By.partialLinkText(“链接的部分文字内容”))
Xpath定位
使用Xpath方式定位:driver.findElement(By.xpath(“Xpath定位表达式”))
定位时尽量使用相对路径进行定位,绝对路径在页面做一些小改动时定位需重新编写复用性低
Starts-with()://img[starts-with(@alt,'div1')] 查找图片alt属性开始位置包含“div1”关键字的页面元素
Contains()://img[contains(@alt,'g1')] 查找图片alt属性包含“g1”关键字的页面元素
通过标签的文本内容进行定位://button/span[contains(text(), "指定文本内容")] (//路径[contains.text(),"指定文本内容"])
使用XPath的轴(Axis)进行元素定位
parent:选择当前节点的上层父节点 //img[@alt='div2-img2']/parent::div 查找到div2-img2的图片,并基于图片位置找到它上一级的div页面元素
child:选择当前节点的下层子节点 //div[@id='div1']/child::img 查找到ID为div1的元素,并基本div1找到它下层节点中的img元素
ancestor:选择当前节点的所有上层节点 //img[@alt='div2-img2']/ancestor::div 查找到div2-img2的图片,并基于图片位置找到它上级的div页面元素
descendant:选择当前节点的所有下层节点 //img[@name='div2']/descendant::img 查找到name属性值的div页面元素,并基于div1找到它下级所有节点中的img页面元素
following: 选择当前节点后显示的所有节点 //div[@id='div1']/following::img 查找到ID属性为div1的div页面元素,并基本div1的位置找到它后面节点中的img元素
following-sibling: 选择当前节点的所有平级节点 //a[@href='http://www.baidu.com']/following-sibling::input 查找连接地址为http://www.baidu.com的链接页面元素,并基于链接位置找到它后续节点中的input页面元素
preceding: 选择当前节点前面的所有节点 //img[@alt='div2-img2']/preceding::div 查找到alt属性div2-img2的图片页面元素,并基于图片位置找到它前面节点的div页面元素
preceding-sibling: 选择当前节点前面的所有同级节点 //img[@alt='div2-img2']/preceding-sibling::a[1] 查找到alt属性为div2-img2的图片页面元素,并基于图片位置找到它前面同级节点中的第二个链接页面元素
使用CSS方式定位:driver.findElement(By.cssSelector(“css定位表达式”))
使用Class方式定位:driver.findElement(By.className(“页面元素的Class属性值”))
使用标签名称定位:driver.finElement(By.tagName(“页面中HTML标签的名称”))
使用JQuery方式:js.executeScript(“return JQuery.find(‘JQuery定位表达式’)”)