for (String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
}
Can we rewrite this using Lambda Expression?
for (String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
}
Can we rewrite this using Lambda Expression?
I would go for
driver.getWindowHandles().forEach(windowHandle -> {
driver.switchTo().window(windowHandle);
});
which is equivalent to:
for(String windowHandle : driver.getWindowHandles()) {
driver.switchTo().window(windowHandle);
}
forEach
method calls can be used for Collections
.
You can go parallel with the usage of forEach
together with parallelStream
. Read further.
You can do it like
driver.getWindowHandles().stream().forEach((i) -> {
driver.switchTo().window(i);
});
or like
driver.getWindowHandles().parallelStream().forEachOrdered((i) -> {
driver.switchTo().window(i);
});
Stream api offers other possibilities that can make your life easier.