You can use flatten to get a List[WebElement] and then convert it to Set
def collect(patterns: Set[String]): Set[String] = {
patterns.map{ pattern =>
driver.findElementsByXPath(pattern).asScala.map{ link =>
link.getAttribute("href")
}
}.flatten.toSet
}