From 279a6488bf4ab97048d7d5ee034bcb93300a1405 Mon Sep 17 00:00:00 2001 From: Pawan Rai Date: Tue, 30 Jan 2024 01:35:07 +0530 Subject: [PATCH] added support to pass options --- .../lambdatest_selenium_driver/smartui.py | 19 ++++++++++++++++--- .../lambdatest_selenium_driver/version.py | 2 +- selenium/setup.py | 2 +- utils/lambdatest_sdk_utils/rest.py | 8 +++++--- utils/lambdatest_sdk_utils/version.py | 2 +- utils/setup.py | 2 +- 6 files changed, 25 insertions(+), 10 deletions(-) diff --git a/selenium/lambdatest_selenium_driver/smartui.py b/selenium/lambdatest_selenium_driver/smartui.py index b6f727c..9dea596 100644 --- a/selenium/lambdatest_selenium_driver/smartui.py +++ b/selenium/lambdatest_selenium_driver/smartui.py @@ -1,8 +1,9 @@ +import json from lambdatest_sdk_utils import is_smartui_enabled,fetch_dom_serializer,post_snapshot from lambdatest_sdk_utils import get_pkg_name,setup_logger,get_logger -def smartui_snapshot(driver, name,**kwargs): +def smartui_snapshot(driver, name,options={}): # setting up logger setup_logger() logger = get_logger() @@ -17,10 +18,22 @@ def smartui_snapshot(driver, name,**kwargs): driver.execute_script(resp['data']['dom']) # Serialize and capture the DOM - dom = driver.execute_script("return {'dom':SmartUIDOM.serialize()}") + dom = driver.execute_script( + f""" + return {{ + dom: SmartUIDOM.serialize({json.dumps(options)}), + url: document.URL + }} + """ + ) # Post the dom to smartui endpoint - post_snapshot(dom,name,get_pkg_name()) + dom['name'] = name + res = post_snapshot(dom,get_pkg_name(),options=options) + + if res and res.get('data') and res['data'].get('warnings') and len(res['data']['warnings']) != 0: + for warning in res['data']['warnings']: + logger.warn(warning) logger.info(f'Snapshot captured {name}') except Exception as e: diff --git a/selenium/lambdatest_selenium_driver/version.py b/selenium/lambdatest_selenium_driver/version.py index 6c4c011..34c1db3 100644 --- a/selenium/lambdatest_selenium_driver/version.py +++ b/selenium/lambdatest_selenium_driver/version.py @@ -1 +1 @@ -__version__ = '1.0.1' \ No newline at end of file +__version__ = '1.0.2' \ No newline at end of file diff --git a/selenium/setup.py b/selenium/setup.py index 05c26bd..c21c40e 100644 --- a/selenium/setup.py +++ b/selenium/setup.py @@ -7,7 +7,7 @@ setup( name="lambdatest-selenium-driver", - version="1.0.1", + version="1.0.2", author="LambdaTest ", description="Python Selenium SDK for testing with Smart UI", long_description=long_description, diff --git a/utils/lambdatest_sdk_utils/rest.py b/utils/lambdatest_sdk_utils/rest.py index a2d9769..cb1da9b 100644 --- a/utils/lambdatest_sdk_utils/rest.py +++ b/utils/lambdatest_sdk_utils/rest.py @@ -30,12 +30,14 @@ def fetch_dom_serializer(): raise Exception(f'fetch DOMSerializer failed') -def post_snapshot(dom,snaphshotname,pkg): +def post_snapshot(snapshot,pkg,**kwargs): try: response = requests.post(f'{SMART_UI_API}/snapshot', json={ 'snapshot': { - 'dom' : dom['dom']['html'], - 'name' : snaphshotname + 'dom' : snapshot['dom'], + 'name' : snapshot['name'], + 'url' : snapshot['url'], + **kwargs }, 'testType': pkg }) diff --git a/utils/lambdatest_sdk_utils/version.py b/utils/lambdatest_sdk_utils/version.py index 75977e6..6c4c011 100644 --- a/utils/lambdatest_sdk_utils/version.py +++ b/utils/lambdatest_sdk_utils/version.py @@ -1 +1 @@ -__version__ = '1.0.0' \ No newline at end of file +__version__ = '1.0.1' \ No newline at end of file diff --git a/utils/setup.py b/utils/setup.py index 215259a..643a545 100644 --- a/utils/setup.py +++ b/utils/setup.py @@ -3,7 +3,7 @@ setup( name="lambdatest-sdk-utils", - version="1.0.0", + version="1.0.1", author="LambdaTest ", description="SDK utils", long_description="SDK utils for lambdatest",