Хорошо ли использовать driver.manage().window().maximize() в селене каждый раз, когда мы вызываем браузер

Мы используем driver.manage().window().maximize();, чтобы развернуть браузер.

Я видел несколько примеров в Интернете, которые используют driver.manage().window().maximize(), хотя это не требуется для максимального расширения браузера. (Например: вход в gmail)

Также я вижу, что при вызове браузера с использованием селена он открывается только в развернутом окне. Тем не менее я должен использовать это driver.manage().window().maximize();


person Siva    schedule 19.01.2016    source источник
comment
Это не только не сработало, но и остановило выполнение остального кода Java.   -  person Steve Staple    schedule 12.12.2017


Ответы (4)


Краткий ответ: Да.

Немного более длинный ответ: когда селен взаимодействует с веб-страницей, например, нажимает кнопку или пишет в текстовое поле, взаимодействующий WebElement должен быть виден, иначе вы получите исключение. Если вы считаете, что для повышения производительности однократный вызов window().maximize() намного «дешевле» (и гораздо менее подвержен ошибкам), чем каждый раз прокручивать до WebElement.

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

Кстати

Также я вижу, что при вызове браузера с использованием селена он открывается только в развернутом окне.

Не правда.

person Guy    schedule 20.01.2016

Это зависит от вашего выбора. Если окно не развернуто, возможно, вы не сможете найти элемент на странице. Так что если вам нужен такой элемент, то стоит развернуть окно.

person pratapvaibhav19    schedule 19.01.2016

Как сказал [pratapvaibhav19], это полностью зависит от вашего выбора. Есть разные способы сделать это, вы можете открыть развернутые окна Chrome. Для Firefox и IE вы можете использовать driver.manage().window().maximize();. В качестве альтернативы вы можете открыть окно браузера в соответствии с вашим разрешением экрана ИЛИ в нестандартном размере.

person amitbobade    schedule 19.01.2016
comment
@NickQ Боюсь, я с тобой не согласен. Я только что выполнил свой скрипт (который работал правильно с развернутым окном браузера) в Chrome, не разворачивая окно браузера. Но это не сработало. Я проверял несколько раз, но каждый раз выбрасывал исключение TargetInvocationException. Поэтому я боюсь, что то, что вы говорите, будет работать во всех случаях. - person amitbobade; 20.01.2016

Вам не нужно разворачивать окно. Selenium может взаимодействовать с браузером при любом разрешении экрана, потому что он не использует мышь или клавиатуру, как инструменты автоматизации рабочего стола.

Просто проще просматривать веб-страницы и делать снимки экрана в больших окнах браузера.

person unickq    schedule 19.01.2016