С последним обновлением браузера Chrome наши тесты пользовательского интерфейса для мобильных браузеров не работают в браузере Chrome для Windows.
Я использовал это: driver.manage (). window (). setSize (размер);
Они не работают, поскольку элементы пользовательского интерфейса не соответствуют ожидаемой минимальной ширине браузера Chrome.
Но сайт отлично загружается на реальных мобильных устройствах в браузере Chrome.
Есть ли альтернатива в селене, которая отменяет минимальную ширину браузера по умолчанию, установленную браузером Chrome.
driver.manage (). window (). setSize (размер);
Я пытаюсь установить ширину браузера на 385, но в Windows Chrome она автоматически сбрасывается до 540, что приводит к сбою проверки.




Некоторое время назад я работал с Selenium / ChromeDriver и Python. Надеюсь, это все еще актуально.
Я думаю, что вам нужно немного изменить способ управления тестами мобильный, не только для ошибочного разрешения. Я рекомендую вам проверить, применим ли мой опыт и к вашему случаю.
В моем случае установка разрешения окна браузера хорошо работала с Chrome в режиме рабочий стол, но у меня были проблемы с мобильным режимом Chrome.
В мобильном режиме не могу выставить разрешение с помощью setSize(), на самом деле он был проигнорирован, а размер окна браузера всегда равен разрешению экрана был «смоделированным» мобильный телефон.
Если подумать, это имеет смысл.
По этой причине Я воодушевляю вас дважды проверяет / проверяет, что ваши тесты на селен в мобильном режиме эффективно изменяют размер окна браузера - то есть я боюсь, что вы всегда выполняете рендеринг веб-страницы с тем же разрешением ... разрешение экрана (смоделированный) мобильный телефон.
По этой причине в моем коде я использовал код setSize() только для операций / тестов в режиме рабочего стола.
Для мобильного режима Chrome: мой код создает новый экземпляр ChromeDriver для каждого разрешения окна браузера (x, y), изменив разрешение экрана мобильного телефона на (x, y); вы можете сделать это с помощью экспериментальной опции ChromeDriver, следующий код.
Код Java для разрешения экрана x, y = 800,1280:
Map<String, Object> deviceMetrics = new HashMap<>();
deviceMetrics.put("width", 800);
deviceMetrics.put("height", 1280);
deviceMetrics.put("pixelRatio", 1.0);
Map<String, Object> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceMetrics", deviceMetrics);
mobileEmulation.put("userAgent", "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
WebDriver driver = new ChromeDriver(chromeOptions);
Ваш код должен останавливать экземпляр драйвера и воссоздавать новый для каждого протестированного разрешения.
Я не нашел способа сделать это онлайн с тем же экземпляром :-)
Пожалуйста, поделитесь своими выводами,
С Уважением
П.с: Я всегда использовал pixelRatio = 1.0, я не напоминаю точное значение, но считаю, что это наиболее разумное значение для современных устройств.
P.s.2: предоставленный код является «отображением» моего кода Python, он не протестирован