2015-09-30 3 views
1

Я сделал приложение Java, которое сравнивает скриншоты, взятые из нашей промежуточной среды, против производственных. Приложение не работает из-за разных размеров снимков экрана.FirefoxDriver делает скриншоты разного размера

Как определить размер экрана? Для создания скриншота я использую следующий код.

final WebDriver driver = new FirefoxDriver(); 

    try { 
     driver.manage().window().setSize(new Dimension(1024, 768)); 
     driver.get(link); 
     File outputFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); 
    .... 
+2

Не с 'OutputType.FILE': [Javadoc]«TakesScreenshot делает ** максимум усилий ** в зависимости от браузера, чтобы вернуть следующее в ** порядке предпочтения **: 1) Целая страница 2) Текущее окно 3) Видимая часть текущего кадра 4) Снимок экрана всего экрана, содержащего браузер. " Существует еще один «OutputType.BYTES». Но установка скриншота при работе с необработанными байтами - задача, которую я бы не хотел делать. –

ответ

0

Как упоминалось в комментариях к @ Würgspaß, вы можете сделать это с помощью OutputType.BYTE. Вот пример:

byte[] bytes = driver.getScreenshotAs(OutputType.BYTES); 
BufferedImage full = ImageIO.read(new ByteArrayInputStream(bytes)); 
full.getSubimage(0, 0, 1200, 800); 
Смежные вопросы