1+ import json
12from lambdatest_sdk_utils import is_smartui_enabled ,fetch_dom_serializer ,post_snapshot
23from lambdatest_sdk_utils import get_pkg_name ,setup_logger ,get_logger
34
45
5- def smartui_snapshot (driver , name ,** kwargs ):
6+ def smartui_snapshot (driver , name ,options = {} ):
67 # setting up logger
78 setup_logger ()
89 logger = get_logger ()
@@ -11,16 +12,28 @@ def smartui_snapshot(driver, name,**kwargs):
1112 if not name :
1213 raise Exception ('The `snapshotName` argument is required.' )
1314 if is_smartui_enabled () is False :
14- raise Exception ("SmartUI server is not running ." )
15+ raise Exception ("Cannot find SmartUI server ." )
1516
1617 resp = fetch_dom_serializer ()
1718 driver .execute_script (resp ['data' ]['dom' ])
1819
1920 # Serialize and capture the DOM
20- dom = driver .execute_script ("return {'dom':SmartUIDOM.serialize()}" )
21+ dom = driver .execute_script (
22+ f"""
23+ return {{
24+ dom: SmartUIDOM.serialize({ json .dumps (options )} ),
25+ url: document.URL
26+ }}
27+ """
28+ )
2129
2230 # Post the dom to smartui endpoint
23- post_snapshot (dom ,name ,get_pkg_name ())
31+ dom ['name' ] = name
32+ res = post_snapshot (dom ,get_pkg_name (),options = options )
33+
34+ if res and res .get ('data' ) and res ['data' ].get ('warnings' ) and len (res ['data' ]['warnings' ]) != 0 :
35+ for warning in res ['data' ]['warnings' ]:
36+ logger .warn (warning )
2437
2538 logger .info (f'Snapshot captured { name } ' )
2639 except Exception as e :
0 commit comments