2016-08-09 434 views
0

Von nehmen, was ich den folgenden Code gelesen habe:Selen - Firefox WebDriver nur teilweise Screenshot

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

Sollte eine ganze Seite Screenshot. Aber in meinem Fall wird nur der Screenshot von dem, was gerade im Browserfenster angezeigt wird, benötigt. Ist dies das erwartete Verhalten oder ist etwas im Code falsch gelaufen?

Antwort

0

Ja, es ist erwartetes Verhalten von Firefox. Wenn Sie volle Seite Screenshot machen möchten, können Sie so etwas wie diese verwenden den gesamten Inhalt auf den sichtbaren Bereich zu verkleinern

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); 

Er wird versuchen, alle Inhalte auf den sichtbaren Bereich zu bringen, obwohl man noch einige Inhalte verpassen von ganz unten.