Revision: 4437
Author: pekka.klarck
Date: Tue Dec  7 06:50:43 2010
Log: moved java impl of taking screenshot out of the library class
http://code.google.com/p/robotframework/source/detail?r=4437

Modified:
 /trunk/src/robot/libraries/Screenshot.py

=======================================
--- /trunk/src/robot/libraries/Screenshot.py    Tue Dec  7 06:32:57 2010
+++ /trunk/src/robot/libraries/Screenshot.py    Tue Dec  7 06:50:43 2010
@@ -17,14 +17,28 @@
 import os
 import tempfile

-from java.awt import Toolkit, Robot, Rectangle
-from javax.imageio import ImageIO
-from java.io import File
-
 from robot.version import get_version
 from robot import utils


+if sys.platform.startswith('java'):
+    from java.awt import Toolkit, Robot, Rectangle
+    from javax.imageio import ImageIO
+    from java.io import File
+
+    def take_screenshot(path):
+        screensize = Toolkit.getDefaultToolkit().getScreenSize()
+        rectangle = Rectangle(0, 0, screensize.width, screensize.height)
+        image = Robot().createScreenCapture(rectangle)
+        ImageIO.write(image, "jpg", File(path))
+
+else:
+
+    def take_screenshot(path):
+ raise RuntimeError('Taking screenshots is not supported on this platform ' + 'by default. See library documentation for details.')
+
+
 class Screenshot:

     """A test library for taking full-screen screenshots of the desktop.
@@ -81,10 +95,7 @@
The directory holding the file must exist or an exception is raised.
         """
         path = self._get_save_path(path)
-        screensize = Toolkit.getDefaultToolkit().getScreenSize()
-        rectangle = Rectangle(0, 0, screensize.width, screensize.height)
-        image = Robot().createScreenCapture(rectangle)
-        ImageIO.write(image, "jpg", File(path))
+        take_screenshot(path)
         print "Screenshot saved to '%s'" % path
         return path

Reply via email to