Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Область за экраном сохраняется чернотой при снятии скриншота

screenshot
Теги: #<Tag:0x00007f7b6529b2a0>

(Galina.Bratchik) #1

Здравствуйте! 

Наверняка ведь уже кто-то сталкивался с похожей проблемой, а я просто не могу найти решение.

Я снимаю скриншот страницы самым обычным методом:

File screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

FileUtils.copyFile(screen, new File("sample.jpg"));

И получаю файл, в котором, все, что находилось за пределами окна браузера, сохраняется черным прямоугольником. Есть ли способ исправить это?

Браузер Chrome, драйвер запускается на локальной машине.


(nigilit) #2

Была похожая проблема - помогла установка нового Chrome драйвера.

http://code.google.com/p/chromedriver/downloads/list


(Galina.Bratchik) #3

Хм, после обновления драйвера скриншот по-прежнему стал отображать только видимую часть страницы, а то, что раньше было черным, теперь просто оберзается. То есть страница высотой в 100px обрезается до размера окна в 700px высотой.


(romal) #4

Це відбувається тому, що WebDriver по суті - це джаваскрипт, який не бачить далі ніж вікно браузера. Також він не заскрінить і вбудований плагін PDF і Flash.

Робіть скріншот засобами мови, на якій пишете. Ми використовуємо ASP.Net, тому працює наступний код:

      Bitmap bitmap = Capture.Screenshot();

Єдина проблема в тому, що він робить скрін головного монітора. Тому тест треба запускати на головному моніторі і щоб його не перекривали інші вікна.

 


(Galina.Bratchik) #5

Но разве в этом случае я не получу так же скрин только видмой части сайта? Той, что не скрыта за скролами?

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


(nigilit) #6

Приведите код как определяете хром драйвер. также попробуйте обновить селениум до новой версии

 


(Galina.Bratchik) #7
System.setProperty("webdriver.chrome.driver", "lib\WebDriver\browserDrivers\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--incognito");
driver =  new ChromeDriver(options);
 
Это код создания дравера.
 
Селениум последней версии.

(vmaximv) #8

http://code.google.com/p/chromedriver/issues/detail?id=294


(Galina.Bratchik) #9

Спасибо!