@@ -18,23 +18,36 @@ public class Shutterbug {
18
18
private static final int DEFAULT_SCROLL_TIMEOUT = 100 ;
19
19
20
20
/**
21
- * Make screenshot of the viewport only.
22
- * To be used when screenshotting the page
23
- * and don't need to scroll while making screenshots (FF, IE).
21
+ * Make screen shot of the viewport only.
22
+ * To be used when screen shooting the page
23
+ * and don't need to scroll while making screen shots (FF, IE).
24
24
*
25
25
* @param driver WebDriver instance
26
26
* @return PageSnapshot instance
27
27
*/
28
28
public static PageSnapshot shootPage (WebDriver driver ) {
29
- Browser browser = new Browser (driver );
29
+ return shootPage (driver ,false );
30
+ }
31
+
32
+ /**
33
+ * Make screen shot of the viewport only.
34
+ * To be used when screen shooting the page
35
+ * and don't need to scroll while making screen shots (FF, IE).
36
+ *
37
+ * @param driver WebDriver instance
38
+ * @param useDevicePixelRatio whether or not take into account device pixel ratio
39
+ * @return PageSnapshot instance
40
+ */
41
+ public static PageSnapshot shootPage (WebDriver driver , boolean useDevicePixelRatio ) {
42
+ Browser browser = new Browser (driver , useDevicePixelRatio );
30
43
PageSnapshot pageScreenshot = new PageSnapshot (driver );
31
44
pageScreenshot .setImage (browser .takeScreenshot ());
32
45
return pageScreenshot ;
33
46
}
34
47
35
48
/**
36
- * To be used when screenshotting the page
37
- * and need to scroll while making screenshots , either vertically or
49
+ * To be used when screen shooting the page
50
+ * and need to scroll while making screen shots , either vertically or
38
51
* horizontally or both directions (Chrome).
39
52
*
40
53
* @param driver WebDriver instance
@@ -46,17 +59,32 @@ public static PageSnapshot shootPage(WebDriver driver, ScrollStrategy scroll) {
46
59
}
47
60
48
61
/**
49
- * To be used when screenshotting the page
50
- * and need to scroll while making screenshots , either vertically or
62
+ * To be used when screen shooting the page
63
+ * and need to scroll while making screen shots , either vertically or
51
64
* horizontally or both directions (Chrome).
52
65
*
53
66
* @param driver WebDriver instance
54
67
* @param scroll ScrollStrategy How you need to scroll
55
- * @param scrollTimeout Timeout to wait after scrolling and before taking screenshot
68
+ * @param scrollTimeout Timeout to wait after scrolling and before taking screen shot
56
69
* @return PageSnapshot instance
57
70
*/
58
71
public static PageSnapshot shootPage (WebDriver driver , ScrollStrategy scroll , int scrollTimeout ) {
59
- Browser browser = new Browser (driver );
72
+ return shootPage (driver ,scroll ,scrollTimeout ,false );
73
+ }
74
+
75
+ /**
76
+ * To be used when screen shooting the page
77
+ * and need to scroll while making screen shots, either vertically or
78
+ * horizontally or both directions (Chrome).
79
+ *
80
+ * @param driver WebDriver instance
81
+ * @param scroll ScrollStrategy How you need to scroll
82
+ * @param scrollTimeout Timeout to wait after scrolling and before taking screen shot
83
+ * @param useDevicePixelRatio whether or not take into account device pixel ratio
84
+ * @return PageSnapshot instance
85
+ */
86
+ public static PageSnapshot shootPage (WebDriver driver , ScrollStrategy scroll , int scrollTimeout , boolean useDevicePixelRatio ) {
87
+ Browser browser = new Browser (driver , useDevicePixelRatio );
60
88
browser .setScrollTimeout (scrollTimeout );
61
89
PageSnapshot pageScreenshot = new PageSnapshot (driver );
62
90
switch (scroll ) {
@@ -80,7 +108,19 @@ public static PageSnapshot shootPage(WebDriver driver, ScrollStrategy scroll, in
80
108
* @return ElementSnapshot instance
81
109
*/
82
110
public static ElementSnapshot shootElement (WebDriver driver , WebElement element ) {
83
- Browser browser = new Browser (driver );
111
+ return shootElement (driver ,element ,false );
112
+ }
113
+
114
+ /**
115
+ * To be used when need to screenshot particular element.
116
+ *
117
+ * @param driver WebDriver instance
118
+ * @param element WebElement instance to be screen shot
119
+ * @param useDevicePixelRatio whether or not take into account device pixel ratio
120
+ * @return ElementSnapshot instance
121
+ */
122
+ public static ElementSnapshot shootElement (WebDriver driver , WebElement element , boolean useDevicePixelRatio ) {
123
+ Browser browser = new Browser (driver ,useDevicePixelRatio );
84
124
ElementSnapshot elementSnapshot = new ElementSnapshot (driver );
85
125
browser .scrollToElement (element );
86
126
elementSnapshot .setImage (browser .takeScreenshot (),browser .getBoundingClientRect (element ));
0 commit comments