2017-04-11 11 views
1

javaを使ってSeleniumのWindowsタスクバーを含むページ(Webアプリケーション)のスクリーンショットを撮る必要があります。誰でも私にそれをする方法を教えてもらえますか?JavaのSeleniumを使ったタスクバーを含むスクリーンショットを取る

私は以下のコードを使用してスクリーンショットを撮っていますが、タスクバーのスクリーンショットも撮る必要があります。基本的には、"Print Screen(PrntSc)"の機能をSeleniumを使って再現したいと思います。

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
FileUtils.copyFile(scrFile, new File("C:\\screenshot.png")); 
+0

可能性のある重複した[は?Javaを使用してスクリーンショットを撮ると、画像のいくつかの並べ替えに保存する方法はあり](のhttp://のstackoverflow。 com/questions/58305/is-there-a-way-to-take-a-screenshot-java-and-save-it-to-some-sort-of-imageを使用して) – JeffC

答えて

1

としては、すでにこの質問が既に質問された言及を。 ただし、便宜上、ここでは解決策を示します。

単にSeleniumを使用すると、ブラウザのDOMウィンドウのスクリーンショットのみを撮ることができます。あなたはJavaのネイティブであり、サードパーティのAPIは必要なく、要件のためにRobot APIが必要になります。

コードは以下の通りです:

Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); 
BufferedImage screenFullImage = new Robot().createScreenCapture(screenRect); 
ImageIO.write(screenFullImage, "png", new File("./Screenshots/"+ FILENAME)); 

セレンはちょうどDOMの窓の外の何に動作しないブラウザDOMのウィンドウ上で動作します。この方法の詳細については

、このスレッドを参照してください。のIs there a way to take a screenshot using Java and save it to some sort of image?

0

次のコードを試してみてください。

public static void captureScreen() throws AWTException, UnsupportedFlavorException, IOException{ 

     Robot robot = new Robot(); 

     robot.keyPress(KeyEvent.VK_PRINTSCREEN); 
     robot.keyRelease(KeyEvent.VK_PRINTSCREEN); 

     Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); 


     BufferedImage img = (BufferedImage) cb.getData(DataFlavor.imageFlavor); 
     File file = new File("C:/newimage.png"); 
     ImageIO.write(img, "png", file); 

    } 
関連する問題