2011-01-26 22 views

回答

0

我認爲這是你在找什麼。但如果不是,請嘗試更具體。

captureEntirePageScreenshot( 文件名,kwargs) 保存當前窗口畫布的全部內容以PNG文件。 對比這個與 captureScreenshot命令,該命令 捕獲OS 視口的內容(即,無論是目前正在 顯示在監視器上),並且 僅在所述RC實現。 目前,這僅適用於在Chrome模式下運行的Firefox 以及使用實驗性 「Snapsie」實用程序的非HTA的IE 。 Firefox 的實現主要是從 中借用的Screengrab! Firefox擴展。 有關詳細信息,請參閱http://www.screengrab.orghttp://snapsie.sourceforge.net/

Arguments: 

    * filename - the path to the file to persist the screenshot as. No 

文件擴展名將附加 默認值。目錄不會被 創建,如果它們不存在,則會拋出 異常,可能由 本機代碼引發。 * kwargs - 修改捕捉截圖 的方式的kwargs字符串。例如: 「background =#CCFFDD」。當前有效的 選項:

 background 
      the background CSS for the HTML document. This may be useful 

用於捕獲的 低於理想的佈局的屏幕截圖,例如 組,其中絕對定位使 計算畫布尺寸與 失敗和黑色背景被暴露 (可能模糊黑色文字)。

2

請看這裏:Capturing screenshots from remote Selenium RC

本質:

「爲了解決這個問題,你可以使用captureScreenshotToString和captureEntirePageScreenshotToString命令,它會返回截圖,然後你就可以解碼並保存到磁盤上的TestRunner的機器上的Base64編碼的字符串。」

0
public static void getSnapShot(WebDriver driver, String event) { 
    { 
     try { 
      File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); 
      BufferedImage originalImage = ImageIO.read(scrFile); 
      //int type = originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : originalImage.getType(); 
      BufferedImage resizedImage = CommonUtilities.resizeImage(originalImage, IMG_HEIGHT, IMG_WIDTH); 
      ImageIO.write(resizedImage, "jpg", new File(path + "/"+ testCaseId + "/img/" + index + ".jpg")); 
      Image jpeg = Image.getInstance(path + "/" + testCaseId + "/img/"+ index + ".jpg"); 
      jpeg.setAlignment(Image.MIDDLE); 

      ++index; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
0

我喜歡使用PhantomJS驅動程序進行屏幕截圖。

public class Test { 

    public static void main(String[] args) { 
     //PhantomJS headless driver 
     File file = new File("D:\\Webdriver\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe"); 
     System.setProperty("phantomjs.binary.path", file.getAbsolutePath()); 
     WebDriver driver = new PhantomJSDriver(); 

     //Set Size here 
     driver.manage().window().setSize(new Dimension(1600,900)); 

     //To wait until the element get visible or invisible. 
     WebDriverWait wait = new WebDriverWait(driver, 25); 

     //To access url. 
     driver.get("https://www.google.co.in"); 

     //For wait until the element get visible. 
     wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("lst-ib"))); 

     File shot=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
     FileUtils.copyFile(shot, new File("D:\\Webdriver\\Capture.jpg")); 
    } 

} 
0

它需要chrome網頁的全屏截圖。

System.setProperty("webdriver.chrome.driver", "F:\\chromedriver.exe"); 

ChromeOptions options = new ChromeOptions(); 
options.addArguments("--start-maximized"); 
WebDriver driver = new ChromeDriver(options); 
String baseUrl = "https://www.google.co.in"; 

driver.get(baseUrl);   
String fullscreen =Keys.chord(Keys.F11); 
driver.findElement(By.cssSelector("body")).sendKeys(fullscreen); 

TakesScreenshot scrShot =((TakesScreenshot)driver); 
File SrcFile=scrShot.getScreenshotAs(OutputType.FILE); 
File DestFile=new File("F://test.png"); 
FileUtils.copyFile(SrcFile, DestFile); 
driver.close();