前言
这些是过去学习和工作中积累的个人总结,不过可能会存在一些主观臆断,如果有说错的地方,请指出来哦!
回答
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。