Skip to content

Commit 972c998

Browse files
authored
Merge pull request #22 from LambdaTest/stage
Stage
2 parents d6447a0 + 2e58f0c commit 972c998

File tree

7 files changed

+33
-18
lines changed

7 files changed

+33
-18
lines changed

selenium/lambdatest_selenium_driver/smartui.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import json
12
from lambdatest_sdk_utils import is_smartui_enabled,fetch_dom_serializer,post_snapshot
23
from 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:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '1.0.1'
1+
__version__ = '1.0.2'

selenium/setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
setup(
99
name="lambdatest-selenium-driver",
10-
version="1.0.1",
10+
version="1.0.2",
1111
author="LambdaTest <[email protected]>",
1212
description="Python Selenium SDK for testing with Smart UI",
1313
long_description=long_description,
@@ -18,7 +18,7 @@
1818
license="MIT",
1919
install_requires=[
2020
"selenium>=3",
21-
"lambdatest-sdk-utils==1.*"
21+
"lambdatest-sdk-utils"
2222
],
2323
python_requires='>=3.6',
2424
classifiers=[
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import os
22

33
def get_smart_ui_server_address():
4-
return os.getenv('SMARTUI_SERVER_ADDRESS', 'http://localhost:8080')
4+
if not os.getenv('SMARTUI_SERVER_ADDRESS'):
5+
raise Exception('SmartUI server address not found')
6+
return os.getenv('SMARTUI_SERVER_ADDRESS')
57

68
def get_pkg_name():
79
return "@lambdatest/python-selenium-driver"

utils/lambdatest_sdk_utils/rest.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@
44

55
logger = get_logger()
66

7-
SMART_UI_API = get_smart_ui_server_address()
8-
97
def is_smartui_enabled():
108
try:
11-
response = requests.get(f'{SMART_UI_API}/healthcheck')
9+
response = requests.get(f'{get_smart_ui_server_address()}/healthcheck')
1210
response.raise_for_status()
1311
return True
1412
except Exception as e:
@@ -17,7 +15,7 @@ def is_smartui_enabled():
1715

1816
def fetch_dom_serializer():
1917
try:
20-
response = requests.get(f'{SMART_UI_API}/domserializer')
18+
response = requests.get(f'{get_smart_ui_server_address()}/domserializer')
2119
response.raise_for_status()
2220
return response.json()
2321
except requests.exceptions.HTTPError as e:
@@ -30,12 +28,14 @@ def fetch_dom_serializer():
3028
raise Exception(f'fetch DOMSerializer failed')
3129

3230

33-
def post_snapshot(dom,snaphshotname,pkg):
31+
def post_snapshot(snapshot,pkg,**kwargs):
3432
try:
35-
response = requests.post(f'{SMART_UI_API}/snapshot', json={
33+
response = requests.post(f'{get_smart_ui_server_address()}/snapshot', json={
3634
'snapshot': {
37-
'dom' : dom['dom']['html'],
38-
'name' : snaphshotname
35+
'dom' : snapshot['dom'],
36+
'name' : snapshot['name'],
37+
'url' : snapshot['url'],
38+
**kwargs
3939
},
4040
'testType': pkg
4141
})
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '1.0.0'
1+
__version__ = '1.0.1'

utils/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
setup(
55
name="lambdatest-sdk-utils",
6-
version="1.0.0",
6+
version="1.0.1",
77
author="LambdaTest <[email protected]>",
88
description="SDK utils",
99
long_description="SDK utils for lambdatest",

0 commit comments

Comments
 (0)