@@ -70,6 +70,7 @@ def __init__(self, *args, **kwargs):
7070 self .__last_url_of_delayed_assert = "data:,"
7171 self .__last_page_load_url = "data:,"
7272 self .__last_page_screenshot = None
73+ self .__last_page_screenshot_png = None
7374 self .__delayed_assert_count = 0
7475 self .__delayed_assert_failures = []
7576 # Requires self._* instead of self.__* for external class use
@@ -3188,15 +3189,32 @@ def setUp(self, masterqa_mode=False):
31883189 self ._default_driver = self .driver
31893190
31903191 def __set_last_page_screenshot (self ):
3191- if not self .__last_page_screenshot :
3192+ """ self.__last_page_screenshot is only for pytest html report logs
3193+ self.__last_page_screenshot_png is for all screenshot log files """
3194+ if not self .__last_page_screenshot and (
3195+ not self .__last_page_screenshot_png ):
31923196 try :
31933197 element = self .driver .find_element_by_tag_name ('body' )
31943198 if self .is_pytest and self .report_on :
3199+ self .__last_page_screenshot_png = (
3200+ self .driver .get_screenshot_as_png ())
31953201 self .__last_page_screenshot = element .screenshot_as_base64
31963202 else :
3197- self .__last_page_screenshot = element .screenshot_as_png
3203+ self .__last_page_screenshot_png = element .screenshot_as_png
31983204 except Exception :
3199- pass
3205+ if not self .__last_page_screenshot :
3206+ if self .is_pytest and self .report_on :
3207+ try :
3208+ self .__last_page_screenshot = (
3209+ self .driver .get_screenshot_as_base64 ())
3210+ except Exception :
3211+ pass
3212+ if not self .__last_page_screenshot_png :
3213+ try :
3214+ self .__last_page_screenshot_png = (
3215+ self .driver .get_screenshot_as_png ())
3216+ except Exception :
3217+ pass
32003218
32013219 def __insert_test_result (self , state , err ):
32023220 data_payload = TestcaseDataPayload ()
@@ -3326,12 +3344,12 @@ def tearDown(self):
33263344 os .makedirs (test_logpath )
33273345 except Exception :
33283346 pass # Only reachable during multi-threaded runs
3329- if not self .__last_page_screenshot :
3347+ if not self .__last_page_screenshot_png :
33303348 self .__set_last_page_screenshot ()
33313349 log_helper .log_screenshot (
33323350 test_logpath ,
33333351 self .driver ,
3334- self .__last_page_screenshot )
3352+ self .__last_page_screenshot_png )
33353353 self .__add_pytest_html_extra ()
33363354 if self .with_testing_base and has_exception :
33373355 test_logpath = self .log_path + "/" + test_id
@@ -3344,23 +3362,23 @@ def tearDown(self):
33443362 not self .with_basic_test_info ) and (
33453363 not self .with_page_source )):
33463364 # Log everything if nothing specified (if testing_base)
3347- if not self .__last_page_screenshot :
3365+ if not self .__last_page_screenshot_png :
33483366 self .__set_last_page_screenshot ()
33493367 log_helper .log_screenshot (
33503368 test_logpath ,
33513369 self .driver ,
3352- self .__last_page_screenshot )
3370+ self .__last_page_screenshot_png )
33533371 log_helper .log_test_failure_data (
33543372 self , test_logpath , self .driver , self .browser )
33553373 log_helper .log_page_source (test_logpath , self .driver )
33563374 else :
33573375 if self .with_screen_shots :
3358- if not self .__last_page_screenshot :
3376+ if not self .__last_page_screenshot_png :
33593377 self .__set_last_page_screenshot ()
33603378 log_helper .log_screenshot (
33613379 test_logpath ,
33623380 self .driver ,
3363- self .__last_page_screenshot )
3381+ self .__last_page_screenshot_png )
33643382 if self .with_basic_test_info :
33653383 log_helper .log_test_failure_data (
33663384 self , test_logpath , self .driver , self .browser )
@@ -3421,12 +3439,12 @@ def tearDown(self):
34213439 log_helper .log_test_failure_data (
34223440 self , test_logpath , self .driver , self .browser )
34233441 if len (self ._drivers_list ) > 0 :
3424- if not self .__last_page_screenshot :
3442+ if not self .__last_page_screenshot_png :
34253443 self .__set_last_page_screenshot ()
34263444 log_helper .log_screenshot (
34273445 test_logpath ,
34283446 self .driver ,
3429- self .__last_page_screenshot )
3447+ self .__last_page_screenshot_png )
34303448 log_helper .log_page_source (test_logpath , self .driver )
34313449 elif self .save_screenshot_after_test :
34323450 test_id = "%s.%s.%s" % (self .__class__ .__module__ ,
@@ -3438,14 +3456,14 @@ def tearDown(self):
34383456 os .makedirs (test_logpath )
34393457 except Exception :
34403458 pass # Only reachable during multi-threaded runs
3441- if not self .__last_page_screenshot :
3459+ if not self .__last_page_screenshot_png :
34423460 self .__set_last_page_screenshot ()
34433461 log_helper .log_screenshot (
34443462 test_logpath ,
34453463 self .driver ,
3446- self .__last_page_screenshot )
3464+ self .__last_page_screenshot_png )
34473465 if self .report_on :
3448- self ._last_page_screenshot = self .__last_page_screenshot
3466+ self ._last_page_screenshot = self .__last_page_screenshot_png
34493467 try :
34503468 self ._last_page_url = self .get_current_url ()
34513469 except Exception :
0 commit comments