Как настроить параметры метрики устройства для мобильного эмулятора Chrome в Селене?

Я пытаюсь автоматизировать мобильный эмулятор, который Chrome обеспечивает в селене, однако проблемы, с которыми я сталкиваюсь в настоящий момент, заключаются в том, что браузер открывается с неверными метриками устройства, я пытаюсь установить высоту и ширину специально, но без каких-либо удачи вот мой код:

Map<String, Object> deviceMetrics = new HashMap<String, Object>();
            deviceMetrics.put("width", 360);
            deviceMetrics.put("height", 640);
            Map<String, Object> mobileEmulation = new HashMap<String, Object>();
            mobileEmulation.put("deviceMetrics", deviceMetrics);
            mobileEmulation.put("deviceName", "Nexus 5");
            Map<String, Object> chromeOptions = new HashMap<String, Object>();
            chromeOptions.put("mobileEmulation", mobileEmulation);
            DesiredCapabilities capabilityMob = DesiredCapabilities.chrome();
            capabilityMob.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
            this.driver = new RemoteWebDriver(_url, capabilityMob);

Однако я получаю следующую ошибку:

org.openqa.selenium.WebDriverException: неизвестная ошибка: невозможно проанализировать возможность: chromeOptions из неизвестной ошибки: невозможно проанализировать mobileEmulation из неизвестной ошибки: "deviceName" должно использоваться отдельно

1 ответ

Вам не нужно использовать как предустановленное устройство, так и пользовательские параметры устройства. Попробуйте аналогично:

Map<String, Object> deviceMetrics = new HashMap<>();
deviceMetrics.put("width", 768);
deviceMetrics.put("height", 1024);
deviceMetrics.put("pixelRatio", 2);
Map<String, Object> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceMetrics", deviceMetrics);
mobileEmulation.put("userAgent", "Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 
Safari/9537.53");
Map<String, Object> chromeOptions = new HashMap<>();
chromeOptions.put("mobileEmulation", mobileEmulation);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
Другие вопросы по тегам