10
10
from robot .api .deco import not_keyword
11
11
from robot .api import logger
12
12
from robot .libraries .BuiltIn import BuiltIn
13
+ from robot .errors import ExecutionFailed
13
14
from pyppeteer .browser import Browser
14
15
from PuppeteerLibrary .library_context .ilibrary_context import iLibraryContext
15
16
from PuppeteerLibrary .library_context .library_context_factory import LibraryContextFactory
@@ -120,7 +121,7 @@ def __init__(self, disable_python_logging=True):
120
121
try :
121
122
signal .signal (signal .SIGINT , self .terminal_signal_handler )
122
123
except :
123
- print ('Warning: Not handle ternial signal' )
124
+ print ('Warning: Not handle terminal signal' )
124
125
125
126
try :
126
127
self .loop = asyncio .get_event_loop ()
@@ -215,7 +216,7 @@ def failure_occurred(self):
215
216
def terminal_signal_handler (self , sig , frame ):
216
217
print ('You pressed Ctrl+C!' )
217
218
BuiltIn ().run_keyword_and_ignore_error ('Close Puppeteer' )
218
- sys . exit ( 0 )
219
+ self . _stop_execution_gracefully ( )
219
220
220
221
def _disable_python_logging (self ):
221
222
# Force node not throw any unhandled task
@@ -226,6 +227,9 @@ def _disable_python_logging(self):
226
227
logging .disable (logging .CRITICAL )
227
228
logging .warning ('Protocol problem:' )
228
229
230
+ def _stop_execution_gracefully (self ):
231
+ raise ExecutionFailed ('Execution terminated by signal' , exit = True )
232
+
229
233
from ._version import get_versions
230
234
__version__ = get_versions ()['version' ]
231
235
del get_versions
0 commit comments