Как настроить параметры метрики устройства для мобильного эмулятора 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);