Skip to content

Commit 5ad7a41

Browse files
committed
wait for kernel to be ready in selenium tests
might fix recent flaky tests
1 parent 1e8c90f commit 5ad7a41

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

notebook/tests/selenium/utils.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,17 +298,20 @@ def run_all(self):
298298

299299
def trigger_keydown(self, keys):
300300
trigger_keystrokes(self.body, keys)
301-
301+
302302
def is_kernel_running(self):
303303
return self.browser.execute_script("return Jupyter.notebook.kernel.is_connected()")
304304

305305
@classmethod
306306
def new_notebook(cls, browser, kernel_name='kernel-python3'):
307307
with new_window(browser, selector=".cell"):
308308
select_kernel(browser, kernel_name=kernel_name)
309-
return cls(browser)
309+
wait = WebDriverWait(browser, 10)
310+
nb = cls(browser)
311+
wait.until(lambda driver: nb.is_kernel_running())
312+
return nb
313+
310314

311-
312315
def select_kernel(browser, kernel_name='kernel-python3'):
313316
"""Clicks the "new" button and selects a kernel from the options.
314317
"""
@@ -319,6 +322,7 @@ def select_kernel(browser, kernel_name='kernel-python3'):
319322
kernel = wait_for_selector(browser, kernel_selector, single=True)
320323
kernel.click()
321324

325+
322326
@contextmanager
323327
def new_window(browser, selector=None):
324328
"""Contextmanager for switching to & waiting for a window created.

0 commit comments

Comments
 (0)