2016-08-09 2 views
0

Из того, что я прочитал следующий код:Селена - Firefox WebDriver будет принимать только частичный скриншот

File s = ((TakesScreenshot)driver_).getScreenshotAs(OutputType.FILE); 
    try { 
     FileUtils.copyFile(s,new File("C:\\scr.png")); 
    } catch (IOException exception) { 
     exception.printStackTrace(); 
    } 

Если взять полный скриншот страницы. Но в моем случае он будет снимать только снимок экрана, который в настоящее время отображается в окне браузера. Это ожидаемое поведение или что-то не так в коде?

ответ

0

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

executor = (JavascriptExecutor)driver.getDriver(); 
executor.executeScript(
     "document.body.style.zoom= 
      (top.window.screen.height-70)/ 
      Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);"); 
File scrFile = ((TakesScreenshot)driver.getDriver()).getScreenshotAs(OutputType.FILE); 

Он будет пытаться свести все содержание в видимой области, хотя вы все еще можете пропустить некоторое содержание из самой нижней области.