2015-10-15 6 views
4

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

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

Я использую Selenium для скриншота, после чего я отправил его в PIL, чтобы его обрезали.

Обратите внимание, что, когда это появляется, я могу прокручиваться по всем путям.

enter image description here

+0

Можете ли вы показать нам свой код? Тест Selenium? – Uri

+0

Im способен сделать снимок экрана с верхней панелью, где она должна быть. У меня был свернутый браузер. – Sighil

+0

@ Striker Обратите внимание, что, когда это появляется, я могу прокручиваться по всем путям. – User

ответ

4

Вы можете манипулировать HTML-код, как удалить атрибут класса навигационной панели этого driver.execute_script("document.getElementById('blueBarNAXAnchor').setAttribute('class', '')") тогда остаться в начале страницы без стиля. Тогда вы можете сделать снимок экрана без него. Смотрите ниже, проверьте face_1.png:

>>> driver.save_screenshot("face.png") 
True 
>>> driver.execute_script("document.getElementById('blueBarNAXAnchor').setAttribute('class', '')") 
>>> driver.save_screenshot("face_1.png") 
True 

enter image description here

2

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

Попробуйте позвонить driver.maximize_window() один раз при инициализации перед использованием driver.get и driver.save_screenshot.

+0

Downvoter ... помочь объяснить? – PascalVKooten

+0

Не я, но я установил его (1366, 768). Этого недостаточно? – User

+0

Это может быть проблема с экранами, поэтому я решил максимизировать и разрешить разрешение высокого разрешения/другого разрешения? – PascalVKooten

2

Вместо увеличения размера окна ваш размер должен быть reduce. Установите окно высотой до 500px, а верхняя панель будет помещена на скриншот, где это должно быть.

Это связано с тем, что, когда высота браузера ниже 500 пикселей, верхняя панель исчезает из вида. Над этой высотой верхний бар появляется в окне просмотра браузера, зависающем над лентой новостей. Вы также можете попробовать это вручную.

JAVA

driver.manage().window().setSize(new Dimension(1024, 500)); 

ПИТОН

driver.set_window_size(300, 500) 

приведенный выше код на JAVA. Но я считаю, что вы можете найти эквивалент python.

ПРИМЕЧАНИЕ. У меня есть разрешение экрана 1366x768. Таким образом, значение 500px может меняться. Но вам, безусловно, нужно уменьшить высоту.

+0

Хорошо, так как размер окна немного меньше размера экрана? Я использую виртуальный дисплей (Xvfb), поэтому я могу настроить все. – User

+0

Не нужно настраивать виртуальный дисплей.Просто измените размер браузера (уменьшите высоту). Вышеупомянутый код Java Selenium делает это. Я попробую и обновить требуемый код python. – Sighil

+0

Код Python http://stackoverflow.com/questions/13571349/i-need-selenium-to-open-its-web-browser-in-a-larger-resolution-preferably-max http://stackoverflow.com/ Вопросы/15397483/how-do-i-set-browser-width-and-height-in-selenium-webdriver – Sighil