Answer
Maximizing Chrome Window Without maximize()
There are two reliable alternatives when driver.manage().window().maximize() is not preferred or doesn''t work (e.g., in headless mode).
Method 1 — Set Dimension Manually
Java
import org.openqa.selenium.Dimension;
// Set to full HD resolution
Dimension dimension = new Dimension(1920, 1080);
driver.manage().window().setSize(dimension);
Method 2 — ChromeOptions --start-maximized
Java
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
// For Linux CI where no screen exists:
options.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(options);
Method 3 — Use setPosition + setSize Together
Java
driver.manage().window().setPosition(new Point(0, 0));
driver.manage().window().setSize(new Dimension(1920, 1080));
Method 4 — JavaScript fullscreen
Java
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.moveTo(0, 0);"
+ "window.resizeTo(screen.width, screen.height);");
Headless — Must Use setSize
In headless mode, maximize() often has no effect because there is no physical screen. Always set explicit dimensions:
Java
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
options.addArguments("--window-size=1920,1080"); // mandatory for headless
WebDriver driver = new ChromeDriver(options);
When to Use Each
| Method | Best For |
|---|---|
setSize(new Dimension(...)) | Custom resolution testing |
--start-maximized | Headed Chrome launch |
--window-size=W,H | Headless / CI environments |
| JavaScript resize | Cross-browser fallback |
