Selenium之对象识别

正常来说Selenium的定位分以下几种:

By.id()  通过id定位
By.name()  通过name 定位
By.xpath() 通过xpath定位
By.className() 通过className定位
By.cssSelector() 通过CSS 定位
By.linkText() 通过linkText
By.tagName() 通过tagName
By.partialLinkText() 通过匹到的部分linkText

id,name,xpath用的会相对来说多些,基础的路径就不说了,下面介绍几种比较实用的

选取以'res'开头的id属性,此id属性的节点是div
//div[starts-with(@id,'res')]

选取div的text中包含字符'Country'
//div[contains(text(),'Country')] 如何text只有Country 就可以这样写//div[text()='Country']

选取a中包括sleep的超链接
//a[contains(@href,'sleep')]

选取div下的子节点中有包含属性name为'city'的节点
//div[descendant::*[@name='city']]

选取div的父节点中有包含属性name为'road'的节点
//div[ancestor::*[@name='road']]

选取bookstore中所有子节点book,不管它在什么位置
//bookstore//book

选取倒数第二个td节点
//table/tr/td[last()-1]

选取同节点下的textfield
textfield[preceding-sibling::text[@label='Password']]

 还有更多使用xpath来选取对象的方法,关键是活学活用,如果xpath描述的恰当,可以作为验证点,不光会减少维护也会减少代码量。

原文地址:https://www.cnblogs.com/goldenRazor/p/5092040.html