Search code examples
seleniumselenium-chromedrivergoogle-chrome-devtoolsemulationdevtools

Problem with devTools.send(Emulation.setDeviceMetricsOverride selenium 4


Selenium 4:

I have an error on this line of code :

    devTools.send(Emulation.setDeviceMetricsOverride(600, 1000, 50, true, Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()));

the error:

The method setDeviceMetricsOverride(Integer, Integer, Number, Boolean, Optional, Optional, Optional, Optional, Optional, Optional, Optional, Optional, Optional) in the type Emulation is not applicable for the arguments (int, int, int, boolean, Optional, Optional, Optional, Optional, Optional, Optional, Optional, Optional, Optional)


Solution

  • import java.util.HashMap;
    import java.util.Map;
    import java.util.Optional;
    
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.devtools.DevTools;
    import org.openqa.selenium.devtools.v85.emulation.Emulation;
    
    
    public class CDPFeatures {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            System.setProperty("webdriver.chrome.driver","D:\\chromedriver_win32\\chromedriver.exe");
            
            ChromeDriver driver = new ChromeDriver();
            DevTools devTools = driver.getDevTools();
            devTools.createSession();
            
            Map deviceMetrics = new HashMap()
            {{
                put("width", 600);
                put("height", 1000);
                put("mobile", true);
                put("deviceScaleFactor", 50);
            }};
            driver.executeCdpCommand("Emulation.setDeviceMetricsOverride", deviceMetrics);
            
            driver.get("https://google.com");
            
            
    
        }
    
    }