Разное разрешение на разных вкладках хрома

Что значит “решения там нет”? Решение там как раз есть.
Приложение реально меняет размер экрана. Если вы считаете, что это неправильно (ведь половина элементов становится невидимой) - заводите баг. Ваш тест нашёл баг - это же здорово!

я, конечно, заведу его, когда руками воспроизведу, я до сих пор не понимаю природу происходящего

при прогоне кейса руками, новая вкладка открывается в том же окне с тем же разрешением

Значит, проблема в браузере на линухе, может, обновить? Либо, попробовать другую версию, браузер.
Больше похоже что открывается именно другое окно, как всякие там казино в фоне, а не закладка.
Вы локально же в инкогнито проверяете? С пустым профилем? Я к тому что у вас локально может стоит что новые окна открывать только в закладках, а по умолчанию эта настройка, вроде, выключена.

кстати локально хром 86 стоит, на линухе 85, попробую завтра
сначала еще проверю какое разрешение становится у первой вкладки

а может ли быть такое что там открывается новая вкладка вообще в новом инстансе хрома?

а если там открывается в новом окне, то switchTo().window(1); может и между окнами переключать? а не только между вкладками?

А свитчу не важно, да он может и так.

понял,спасибо

Как вариант, проверьте capabilities. Я знаю, что у FF есть настройка “открывать страницу в новой табе / новом окне”. Уверен, что у хрома есть похожая настройка и она, вполне возможно, управляется capabilities или флагами.

обновил браузер и хромдрайвер - проблема та же, в одном чате подсказали, что за это отвечает атрибут у ссылки - target, но локально она не открывается в новой вкладке

Нашел только такое, получается чтоб открывалось в новом окне , надо указывать это, а я не указываю

--new-window 

Launches URL in new browser window.

(https://code.google.com/p/chromium/codesearch#chromium/src/chrome/common/chrome_switches.cc&q=kOpenInNewWindow&sq=package:chromium&type=cs)

@asolntsev @BabyRoot Проблему решил так:
удалил из метода-сетапа браузера строку

Configuration.browserSize = "1366x768";

и добавил

System.setProperty("chromeoptions.args", "--window-size=1366x768");

после этого оба окна браузера открываются в этом размере
Спасибо за помощь

1 лайк

Совершенно непонятно, как это могло повлиять.
Значит, в изначальной постановке проблемы вы что-то важное недоговорили.

а устанавливая размер окна через

Configuration.browserSize = "1366x768";

под капотом это все равно сетится в “chromeoptions.args” ?

вы на линуксе то проверяли руками ваш кейс?
а по поводу прокидывания значений – дебаг есть ведь, все селениумные переменные доступные в IWebDriver, там капабилити все увидеть можно, может что-то по пути переопределяется

на линуксе нет GUI - не могу там проверить руками

ну поставьте любой гуй менеджер туда и проверьте, ей богу.
представьте, что вашим сервисом кто-то с убунту будет пользоваться, и ваш переход по ссылке откроет новый браузер в расширении 800х600. я бы посмеялся, а кто-то плюнет и уйдёт

Не совсем так. Селенид при открытии нового браузера учитывает и параметр Configuration.browserSize, и chromeoptions.args. Но только Селенид.

Если добавление chromeoptions.args повлияло на размер второго окна, это может означать только одно: это второе окно открывалось не автоматически по клику, а его тоже открывал Селенид. Причём с какими-то очень нестандартными настройками (chromeoptions.args учитывает, а Configuration.browserSize не учитывает).

здесь вы предлагаете поставить брейкпойнт в методе присвоения значения свойству browserSize, например?

зачем? ставьте дебаг в моменте работы на второй вкладке, и смотрите, что там лежит в переменной драйвера

если оно отличается от того, что вы ожидаете,то надо искать, почему так. может дефолтные значения откуда-то прилетают

Тоже столкнулся с такой проблемой. Я — начинающий автоматизатор, и сценарий в моём случае очень простой: на главной странице проверяется десяток ссылок, ведущих в другие разделы сайта. Все тесты идентичные: открывается главная, нажимается кнопка, проверяется, что открылось то, что должно.

Далее происходит вот что: 6 тестов проходят, а 4 падают — потому что главная начинает открываться размером 800x600. И такое поведение только в режиме headless и в CI. Прописал явно browserSize — не помогло. А если ещё добавить startMaximized — во всех тестах окно начинает открываться в 800x600. Задержка между тестами также не решила проблему, а вот closeWindow после каждого теста сработало.

Возможно, эта информация чем-то поможет :slightly_smiling_face: