Selenium面试题:findElement和findElements方法的区别

前言

这些是过去学习和工作中积累的个人总结,不过可能会存在一些主观臆断,如果有说错的地方,请指出来哦!

回答

findElement和findElements都是Selenium中查找元素的方法。

两者区别在于元素的返回。

先看代码示例

WebElement searchEle = 
           webDriver.findElement(By.id("kw"));
List<WebElement> classEle = 
           webDriver.findElements(By.className("s-news-item-title"));

从示例中可以看到findElement有且仅返回一个Web元素,如果findElement查找元素的时候找到多个Web元素,则默认返回找到的第一个WEB元素。而findElements则是以List集合的形式返回到查找到的所有的WEB元素。打个比方,findElement类似于精确搜索,而findElements类似于模糊搜索。其次findElement在未找到元素的时候会抛出异常,而findElements则是返回一个空的List集合。

故在实际场景中,针对该元素进行单独的操作的,会采用findElemen方法,而如果需要返回多个相同的元素则会使用findElements。

1 个赞

你应该再追一层到他们两个的代码实现里。