ElementNotVisibleException when use headless Chrome browser ElementNotVisibleException when use headless Chrome browser selenium selenium

ElementNotVisibleException when use headless Chrome browser


I think the problem is, that the Element is really not visible in the default viewbox (600x800) of Headless Chrome.

The window size of the Headless Browser must be set as a Argument when starting chrome. I'm using javascript (I think the API looks similar under python):

var Options = require('selenium-webdriver/chrome').Options;var options = new Options();options.addArguments('headless');options.addArguments('disable-gpu');options.addArguments('window-size=1200,1100');browser = builder.forBrowser('chrome').setChromeOptions(options).build();

Additional Info

I'm setup up the window size also by webdriver with browser.manage().window().setSize(1200,1100); But this command is not sufficient in headless chrome. In the non headless variant this is working.


You can do this in two ways as below.

1.Passing window size in chrome options as mentioned below(Before instantiating driver instance):

ChromeOptions options = new ChromeOptions()options.addArguments("headless");options.addArguments("window-size=1200,1100");WebDriver driver = new ChromeDriver(options);

2.Set window size after instantiating chrome driver:

WebDriver webDriver= new ChromeDriver();webDriver.manage().window().setSize(new Dimension(1200,1100));


options.addArguments('window-size=1200,1100');

Worked for me in headless chrome mode :) Thanks a lot @powerpete

Below are the complete settings for headless chrome in groovy:-

        ChromeOptions options = new ChromeOptions()        DesiredCapabilities capabilities = DesiredCapabilities.chrome()        options.addArguments('headless','disable-gpu','--test-type','--ignore-certificate-errors')        options.addArguments('window-size=1200,1100');        capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);        capabilities.setCapability(ChromeOptions.CAPABILITY, options)        driver = {new ChromeDriver(capabilities)}