How to set browser viewport size How to set browser viewport size selenium selenium

How to set browser viewport size


Here is function to set the viewport size:

def set_viewport_size(driver, width, height):    window_size = driver.execute_script("""        return [window.outerWidth - window.innerWidth + arguments[0],          window.outerHeight - window.innerHeight + arguments[1]];        """, width, height)    driver.set_window_size(*window_size)

Usage :

from selenium import webdriverdriver = webdriver.Chrome()# set the viewport size to 800 x 600set_viewport_size(driver, 800, 600)# display the viewport sizeprint driver.execute_script("return [window.innerWidth, window.innerHeight];")


Here's the Java version for @Florent B. answer :

        int width = "500";        int height = "500";        //Remove the window from fullscreen (optional), if it s in fullscreen the outerHeight is not accurate        browser.manage().window().setSize(new Dimension(800,800));        JavascriptExecutor js= (JavascriptExecutor)browser;        String windowSize = js.executeScript("return (window.outerWidth - window.innerWidth + "+width+") + ',' + (window.outerHeight - window.innerHeight + "+height+"); ").toString();        //Get the values        width = Integer.parseInt(windowSize.split(",")[0]);        height = Integer.parseInt(windowSize.split(",")[1]);        //Set the window        browser.manage().window().setSize(new Dimension(width, height));


Here is the C# Version for @Florent B. answer:

   public static void SetViewportSize(RemoteWebDriver driver, int width, int height){                var jsGetPadding = @"return [ window.outerWidth - window.innerWidth,window.outerHeight - window.innerHeight ];";    var paddingArray = driver.ExecuteScript(jsGetPadding) as ReadOnlyCollection<object>;     driver.Manage().Window.Size = new Size(width + int.Parse(paddingArray[0].ToString()), height + int.Parse(paddingArray[1].ToString()));}

Usage:

  RemoteWebDriver driver = new EdgeDriver();  SetViewportSize(driver,800, 800);