八种定位方式
一、ID定位
一般情况下页面元素的id属性在当前网页中是唯一的所以使用ID定位可以保证定位的唯一性,不会像其他定位方式一样可能定位到多个页面元素。但有的网页页面元素没有id属性值,导致无法使用ID定位方式。
HTML 源码
登录
Java代码
WebElement element = driver.findElement(By. id("lb"));
二、name定位
name属性值在一个网页中可以不是唯一值,因此使用name方式定位可能会同时定位到多个元素。
HTML 源码
登录
java代码
WebElement element=driver.findElement(By.name("tj_login"));
三、className定位
classname定位可以查找一个或者一组显示效果相同的页面元素。
HTML 源码
注册
java代码
WebElement element = driver.findElement(By.className( "reg"));
四、linkText定位(链接全部文字)
此方式定位链接需要完全匹配链接的显示文字,常用于页面中存在多个链接文字高度相似的情况,无法使用部分链接文字定位。
HTML 源码
搜索设置
java代码
WebElement element = driver.findElement(By.linkText( "搜索设置" ));
五、partialLinkText定位(链接部分文字)
这种定位方式只需模糊匹配链接的显示文字即可,常用于匹配页面链接文字不定期发生少量变化的情况,使用模糊匹配的方式可以提高链接定位的准确率,也可以用于模糊匹配一组链接的情况。
HTML 源码
sogou搜索
baidu搜索
Java代码
WebElement element = driver.findElement(By. partialLinkText( "baidu" ));
List elements=driver.findelement(By.partialLinkText("搜索"));
六、tagname定位(标签名称定位)
标签名定位方式主要用于匹配多个页面元素的情况,将找到的页面元素对象进行计数、遍历。。。
HTML 源码
搜索设置
baidu搜索
Java代码
WebElement element=driver.findElement(By.tagName("a"));
List elements= driver.findElement(By.tagName(a));
七、XPath定位(这里讲述的XPath例子全部是相对路径定位)
HTML源码
SeleniumElementsogou搜索
baidu搜索