Использование выражения Lambda для переключения окон в Selenium с использованием Java

for (String winHandle : driver.getWindowHandles()) 
{
    driver.switchTo().window(winHandle); 
}

Можем ли мы переписать это с помощью выражения Lambda?

java,selenium,selenium-webdriver,lambda,java-8,

0

Ответов: 2


2

Я бы пошел

driver.getWindowHandles().forEach(windowHandle -> {
    driver.switchTo().window(windowHandle);
});

что эквивалентно:

for(String windowHandle : driver.getWindowHandles()) {
    driver.switchTo().window(windowHandle);
}

forEachвызовы методов могут использоваться Collections. Вы можете пойти параллельно с использованием forEachвместе parallelStream. Читайте дальше .


0

Вы можете сделать это, как

driver.getWindowHandles().stream().forEach((i) -> {
     driver.switchTo().window(i);
});

или как

driver.getWindowHandles().parallelStream().forEachOrdered((i) -> {
     driver.switchTo().window(i);
});

Stream api предлагает другие возможности, которые облегчат вашу жизнь.

Java, селен, селен-WebDriver, лямбда, Java-8,
Похожие вопросы