25
25
import sys
26
26
import os .path
27
27
import shutil
28
+ from datetime import datetime
28
29
from copy import deepcopy
29
30
from datetime import datetime
30
31
from robot .libraries .BuiltIn import BuiltIn
@@ -69,6 +70,7 @@ def __init__(self, file=None, main_column_key=None, custom_parser=None, capture_
69
70
- ``MAXIMUM_ROW``: Maximum test data row. (default is None)
70
71
71
72
"""
73
+ print (str (datetime .now ()) + ': Init RPA ExcelDataDriver Library' )
72
74
self .ROBOT_LIBRARY_LISTENER = self
73
75
self .file = file
74
76
@@ -108,6 +110,7 @@ def load_module(self, module):
108
110
return __import__ (module_path , fromlist = [module ])
109
111
110
112
def start_suite (self , suite , result ):
113
+ print (str (datetime .now ()) + ': start_suite' )
111
114
"""``Important`` using by local library only."""
112
115
if self .manually_test :
113
116
return
@@ -139,6 +142,8 @@ def start_suite(self, suite, result):
139
142
suite .tests = temp_test_list
140
143
141
144
def end_suite (self , name , attributes ):
145
+ print (str (datetime .now ()) + ': end_suite' )
146
+
142
147
"""``Important`` using by local library only."""
143
148
if self .manually_test :
144
149
return
@@ -186,7 +191,6 @@ def _create_data_table(self):
186
191
Values are data of this column as array.
187
192
"""
188
193
# Load xlsx test data file
189
- print ('Load excel xlsx test data file' )
190
194
self .excelTestDataService .load_test_data (self .file , self .custom_parser )
191
195
offset_row = BuiltIn ().get_variable_value ('${OFFSET_ROW}' , 0 )
192
196
maximum_row = BuiltIn ().get_variable_value ('${MAXIMUM_ROW}' , None )
@@ -237,16 +241,13 @@ def _replace_test_case_keywords(self, test_data):
237
241
args = self .template_test .keywords .teardown .args )
238
242
239
243
def _add_test_case_tags (self , test_data ):
240
- # print('Set Test case tags')
241
244
for tag in test_data .get_testcase_tags ():
242
245
self .test .tags .add (tag )
243
246
244
247
def _get_template_args (self , test_data ):
245
- # print('Set Template args')
246
248
return_args = []
247
249
for arg in self .template_keyword .args :
248
250
arg = arg .replace ('${' , '' ).replace ('}' , '' )
249
- print (arg )
250
251
return_args .append (test_data .get_test_data_property (arg ))
251
252
return return_args
252
253
@@ -265,7 +266,6 @@ def _is_same_keyword(self, first, second):
265
266
def _capture_screenshot (self ):
266
267
try :
267
268
# Capture selenium screenshot
268
- custom_selenium = CustomSelenium ()
269
269
today = datetime .now ()
270
270
date_and_time = today .strftime ("%Y%m%d%H%M%S" )
271
271
screenshot_name = date_and_time + '_' + str (self .screenshot_running_id ) + '.png'
@@ -274,10 +274,24 @@ def _capture_screenshot(self):
274
274
os .makedirs ('./' + ExcelDataDriver .REPORT_PATH + '/screenshots/' )
275
275
except :
276
276
None
277
+
278
+ # Capture screenshot by selenium
279
+ is_capture_success = False
277
280
try :
281
+ custom_selenium = CustomSelenium ()
278
282
custom_selenium .capture_full_page_screenshot ('./' + ExcelDataDriver .REPORT_PATH + '/screenshots/' + screenshot_name )
283
+ is_capture_success = True
279
284
except Exception as e :
280
- return str (e )
285
+ is_capture_success = False
286
+
287
+ # Capture screenshot by puppeteer
288
+ if is_capture_success is False :
289
+ try :
290
+ library = BuiltIn ().get_library_instance ('PuppeteerLibrary' )
291
+ library .capture_page_screenshot ('./' + ExcelDataDriver .REPORT_PATH + '/screenshots/' + screenshot_name , True )
292
+ except Exception as e :
293
+ return e
294
+
281
295
return '=HYPERLINK(".//screenshots//' + screenshot_name + '","' + screenshot_name + '")'
282
296
except :
283
297
return None
0 commit comments