From f817d45f6661fec9d292bde89fa96f5823726cde Mon Sep 17 00:00:00 2001 From: krassowski <5832902+krassowski@users.noreply.github.com> Date: Tue, 21 May 2024 10:53:32 +0100 Subject: [PATCH 1/5] Fix tests using non-specific selector --- tests/common/navigator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/common/navigator.py b/tests/common/navigator.py index 12a1445bd5..202ce584f4 100644 --- a/tests/common/navigator.py +++ b/tests/common/navigator.py @@ -256,7 +256,7 @@ def reset_workspace(self): self._set_environment_via_popup(kernel=None) # go to Kernel menu - kernel_menuitem = self.page.get_by_text("Kernel", exact=True) + kernel_menuitem = self.page.get_by_role("menuitem", name="Kernel", exact=True) kernel_menuitem.click() # shut down multiple running kernels with contextlib.suppress(Exception): From 21749a8455e44d68db7455b6dfb0d6912c04fa42 Mon Sep 17 00:00:00 2001 From: krassowski <5832902+krassowski@users.noreply.github.com> Date: Tue, 21 May 2024 11:40:03 +0100 Subject: [PATCH 2/5] Fix one more non-specific selector --- tests/common/navigator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/common/navigator.py b/tests/common/navigator.py index 202ce584f4..121fceb7e3 100644 --- a/tests/common/navigator.py +++ b/tests/common/navigator.py @@ -350,7 +350,7 @@ def set_environment(self, kernel): popup = self._check_for_kernel_popup() # if there is not a kernel popup, make it appear if not popup: - self.page.get_by_text("Kernel", exact=True).click() + self.page.get_by_role("menuitem", name="Kernel", exact=True).click() self.page.get_by_role("menuitem", name="Change Kernel…").get_by_text( "Change Kernel…" ).click() From 1b279ccfb16f4d4fd9ba32a042766b2f1e68adef Mon Sep 17 00:00:00 2001 From: krassowski <5832902+krassowski@users.noreply.github.com> Date: Tue, 21 May 2024 14:04:54 +0100 Subject: [PATCH 3/5] Handle the new launcher extension in playwright tests --- tests/common/navigator.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/tests/common/navigator.py b/tests/common/navigator.py index 121fceb7e3..7ff9101539 100644 --- a/tests/common/navigator.py +++ b/tests/common/navigator.py @@ -320,14 +320,23 @@ def _set_environment_via_popup(self, kernel=None): # failure here indicates that the environment doesn't exist either # because of incorrect naming syntax or because the env is still # being built - self.page.get_by_role("combobox").nth(1).select_option(kernel) - # click Select to close popup (deal with the two formats of this dialog) - try: - self.page.get_by_role("button", name="Select Kernel").click() - except Exception: - self.page.locator("div").filter(has_text="No KernelSelect").get_by_role( - "button", name="Select Kernel" - ).click() + + new_launcher_popup = self.page.locator( + ".jp-KernelSelector-Dialog .jp-NewLauncher-table table" + ) + if new_launcher_popup.is_visible(): + # for when the jupyterlab-new-launcher extension is installed + new_launcher_popup.locator("td").nth(1).click() + else: + # for when only the native launcher is available + self.page.get_by_role("combobox").nth(1).select_option(kernel) + # click Select to close popup (deal with the two formats of this dialog) + try: + self.page.get_by_role("button", name="Select Kernel").click() + except Exception: + self.page.locator("div").filter( + has_text="No KernelSelect" + ).get_by_role("button", name="Select Kernel").click() def set_environment(self, kernel): """Set environment of a jupyter notebook. From 2da376969990f3615b62c006f6a813f364db3f35 Mon Sep 17 00:00:00 2001 From: krassowski <5832902+krassowski@users.noreply.github.com> Date: Tue, 21 May 2024 15:30:47 +0100 Subject: [PATCH 4/5] There may be two tables if kernel already started --- tests/common/navigator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/common/navigator.py b/tests/common/navigator.py index 7ff9101539..f846d9a545 100644 --- a/tests/common/navigator.py +++ b/tests/common/navigator.py @@ -323,10 +323,10 @@ def _set_environment_via_popup(self, kernel=None): new_launcher_popup = self.page.locator( ".jp-KernelSelector-Dialog .jp-NewLauncher-table table" - ) + ).nth(0) if new_launcher_popup.is_visible(): # for when the jupyterlab-new-launcher extension is installed - new_launcher_popup.locator("td").nth(1).click() + new_launcher_popup.locator("td").nth(0).click() else: # for when only the native launcher is available self.page.get_by_role("combobox").nth(1).select_option(kernel) From 0e02e35296feb5e5a443be740da3d8c9bdd21273 Mon Sep 17 00:00:00 2001 From: krassowski <5832902+krassowski@users.noreply.github.com> Date: Tue, 21 May 2024 16:22:07 +0100 Subject: [PATCH 5/5] Fix one more non-specific selector --- tests/common/run_notebook.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/common/run_notebook.py b/tests/common/run_notebook.py index 10d28d6637..019fd26710 100644 --- a/tests/common/run_notebook.py +++ b/tests/common/run_notebook.py @@ -212,7 +212,7 @@ def _get_outputs(self) -> List[str]: def _restart_run_all(self): # restart run all cells - self.nav.page.get_by_text("Kernel", exact=True).click() + self.nav.page.get_by_role("menuitem", name="Kernel", exact=True).click() self.nav.page.get_by_role( "menuitem", name="Restart Kernel and Run All Cells…" ).get_by_text("Restart Kernel and Run All Cells…").click()