2017-02-02 54 views
0
for (String winHandle : driver.getWindowHandles()) 
{ 
    driver.switchTo().window(winHandle); 
} 

我們可以使用Lambda Expression重寫這個嗎?使用Lambda表達式在Selenium中使用Java切換窗口使用Java

+0

真的需要在每次循環迭代中再次執行'driver.switchTo()'嗎?如果沒有,您可以簡單地使用'driver.getWindowHandles()。forEach(driver.switchTo():: window)' – Holger

回答

2

我會去

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

這相當於:

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

forEach方法調用可用於Collections。 你可以並行使用forEachparallelStreamRead further

+0

某些解釋可能會有所幫助。 – Pavlo

+2

@Pavlo,補充說明。 –

0

你可以不喜歡它

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

或類似

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

流API提供了其他的可能性,可以使您的生活更輕鬆。