2727DEFAULT_FILENAME_PAGE = "selenium-screenshot-{index}.png"
2828DEFAULT_FILENAME_ELEMENT = "selenium-element-screenshot-{index}.png"
2929EMBED = "EMBED"
30+ BASE64 = "BASE64"
31+ EMBEDDED_OPTIONS = [EMBED , BASE64 ]
3032DEFAULT_FILENAME_PDF = "selenium-page-{index}.pdf"
3133
3234
@@ -111,8 +113,9 @@ def capture_page_screenshot(self, filename: str = DEFAULT_FILENAME_PAGE) -> str:
111113 if not self .drivers .current :
112114 self .info ("Cannot capture screenshot because no browser is open." )
113115 return
114- if self ._decide_embedded (filename ):
115- return self ._capture_page_screen_to_log ()
116+ is_embedded , method = self ._decide_embedded (filename )
117+ if is_embedded :
118+ return self ._capture_page_screen_to_log (method )
116119 return self ._capture_page_screenshot_to_file (filename )
117120
118121 def _capture_page_screenshot_to_file (self , filename ):
@@ -123,9 +126,11 @@ def _capture_page_screenshot_to_file(self, filename):
123126 self ._embed_to_log_as_file (path , 800 )
124127 return path
125128
126- def _capture_page_screen_to_log (self ):
129+ def _capture_page_screen_to_log (self , return_val ):
127130 screenshot_as_base64 = self .driver .get_screenshot_as_base64 ()
128- self ._embed_to_log_as_base64 (screenshot_as_base64 , 800 )
131+ base64_str = self ._embed_to_log_as_base64 (screenshot_as_base64 , 800 )
132+ if return_val == BASE64 :
133+ return_val base64_str
129134 return EMBED
130135
131136 @keyword
@@ -159,8 +164,9 @@ def capture_element_screenshot(
159164 )
160165 return
161166 element = self .find_element (locator , required = True )
162- if self ._decide_embedded (filename ):
163- return self ._capture_element_screen_to_log (element )
167+ is_embedded , method = self ._decide_embedded (filename )
168+ if is_embedded :
169+ return self ._capture_element_screen_to_log (element , method )
164170 return self ._capture_element_screenshot_to_file (element , filename )
165171
166172 def _capture_element_screenshot_to_file (self , element , filename ):
@@ -171,8 +177,10 @@ def _capture_element_screenshot_to_file(self, element, filename):
171177 self ._embed_to_log_as_file (path , 400 )
172178 return path
173179
174- def _capture_element_screen_to_log (self , element ):
175- self ._embed_to_log_as_base64 (element .screenshot_as_base64 , 400 )
180+ def _capture_element_screen_to_log (self , element , return_val ):
181+ base64_str = self ._embed_to_log_as_base64 (element .screenshot_as_base64 , 400 )
182+ if return_val == BASE64 :
183+ return base64_str
176184 return EMBED
177185
178186 @property
@@ -184,20 +192,20 @@ def _screenshot_root_directory(self, value):
184192 self .ctx .screenshot_root_directory = value
185193
186194 def _decide_embedded (self , filename ):
187- filename = filename .lower ()
195+ filename = filename .upper ()
188196 if (
189197 filename == DEFAULT_FILENAME_PAGE
190- and self ._screenshot_root_directory == EMBED
198+ and self ._screenshot_root_directory in EMBEDDED_OPTIONS
191199 ):
192- return True
200+ return True , self . _screenshot_root_directory
193201 if (
194202 filename == DEFAULT_FILENAME_ELEMENT
195- and self ._screenshot_root_directory == EMBED
203+ and self ._screenshot_root_directory in EMBEDDED_OPTIONS
196204 ):
197- return True
198- if filename == EMBED . lower () :
199- return True
200- return False
205+ return True , self . _screenshot_root_directory
206+ if filename in EMBEDDED_OPTIONS :
207+ return True , self . _screenshot_root_directory
208+ return False , None
201209
202210 def _get_screenshot_path (self , filename ):
203211 if self ._screenshot_root_directory != EMBED :
0 commit comments