Skip to content

Commit 2d83147

Browse files
author
david_goichman
committed
Updated JS to include reporting
1 parent 2c70462 commit 2d83147

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

src/SeleniumLibrary/keywords/javascript.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,15 @@ def execute_javascript(self, *code):
6666
| `Execute JavaScript` | alert(arguments[0]); | ARGUMENTS | 123 |
6767
| `Execute JavaScript` | ARGUMENTS | 123 | JAVASCRIPT | alert(arguments[0]); |
6868
"""
69-
js_code, js_args = self._get_javascript_to_execute(code)
70-
self._js_logger('Executing JavaScript', js_code, js_args)
71-
return self.driver.execute_script(js_code, *js_args)
69+
try:
70+
js_code, js_args = self._get_javascript_to_execute(code)
71+
self._js_logger('Executing JavaScript', js_code, js_args)
72+
res = self.driver.execute_script(js_code, *js_args)
73+
self.driver.report().step(description='Execute JavaScript', message='Executed JavaScript. Result: ' + str(res), passed=True, screenshot=False)
74+
return res
75+
except Exception as e:
76+
self.driver.report().step(description='Execute JavaScript', message='Could not execute JavaScript. Error: ' + str(e), passed=False, screenshot=True)
77+
raise AssertionError("Failed to execute JavaScript")
7278

7379
@keyword
7480
def execute_async_javascript(self, *code):
@@ -96,9 +102,15 @@ def execute_async_javascript(self, *code):
96102
| ... | window.setTimeout(answer, 2000); |
97103
| `Should Be Equal` | ${result} | text |
98104
"""
99-
js_code, js_args = self._get_javascript_to_execute(code)
100-
self._js_logger('Executing Asynchronous JavaScript', js_code, js_args)
101-
return self.driver.execute_async_script(js_code, *js_args)
105+
try:
106+
js_code, js_args = self._get_javascript_to_execute(code)
107+
self._js_logger('Executing Asynchronous JavaScript', js_code, js_args)
108+
res = self.driver.execute_async_script(js_code, *js_args)
109+
self.driver.report().step(description='Execute Async JavaScript', message='Executed Async JavaScript. Result: ' + str(res), passed=True, screenshot=False)
110+
return res
111+
except Exception as e:
112+
self.driver.report().step(description='Execute Async JavaScript', message='Could not execute Async JavaScript. Error: ' + str(e), passed=False, screenshot=True)
113+
raise AssertionError("Failed to execute Async JavaScript")
102114

103115
def _js_logger(self, base, code, args):
104116
message = '%s:\n%s\n' % (base, code)

0 commit comments

Comments
 (0)