正常来说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描述的恰当,可以作为验证点,不光会减少维护也会减少代码量。