diff --git a/energy-tests/nextcloud_create_doc_and_share.py b/energy-tests/nextcloud_create_doc_and_share.py index a57d9c10..fe63b487 100644 --- a/energy-tests/nextcloud_create_doc_and_share.py +++ b/energy-tests/nextcloud_create_doc_and_share.py @@ -2,7 +2,7 @@ import contextlib import sys from time import sleep, time_ns -from playwright.sync_api import Playwright, sync_playwright, Error +from playwright.sync_api import Playwright, sync_playwright def log_note(message: str) -> None: timestamp = str(time_ns())[:16] @@ -42,14 +42,16 @@ def run(playwright: Playwright, browser_name: str) -> None: page.get_by_placeholder("Name, email, or Federated Cloud ID …").click() page.get_by_placeholder("Name, email, or Federated Cloud ID …").fill("docs") page.get_by_text("docs_dude").first.click() + page.get_by_text("Save Share").first.click() log_note("Close browser") page.close() # --------------------- context.close() browser.close() - except Error as e: - log_note(f"Exception occurred: {e.message}") + except Exception as e: + if hasattr(e, 'message'): # only Playwright error class has this member + log_note(f"Exception occurred: {e.message}") log_note(f"Page content was: {page.content()}") raise e diff --git a/energy-tests/nextcloud_create_event.py b/energy-tests/nextcloud_create_event.py index f1c72d73..3a6d3fcd 100644 --- a/energy-tests/nextcloud_create_event.py +++ b/energy-tests/nextcloud_create_event.py @@ -2,7 +2,7 @@ import contextlib import sys from time import time_ns, sleep -from playwright.sync_api import Playwright, sync_playwright, expect, Error +from playwright.sync_api import Playwright, sync_playwright, expect def log_note(message: str) -> None: timestamp = str(time_ns())[:16] @@ -50,8 +50,9 @@ def run(playwright: Playwright, browser_name: str) -> None: page.close() log_note("Close browser") - except Error as e: - log_note(f"Exception occurred: {e.message}") + except Exception as e: + if hasattr(e, 'message'): # only Playwright error class has this member + log_note(f"Exception occurred: {e.message}") log_note("Page content was:") log_note(page.content()) raise e diff --git a/energy-tests/nextcloud_create_user.py b/energy-tests/nextcloud_create_user.py index 23acafc8..6a77c6e5 100644 --- a/energy-tests/nextcloud_create_user.py +++ b/energy-tests/nextcloud_create_user.py @@ -2,7 +2,7 @@ import sys import contextlib from time import time_ns -from playwright.sync_api import Playwright, sync_playwright, Error +from playwright.sync_api import Playwright, sync_playwright def log_note(message: str) -> None: timestamp = str(time_ns())[:16] @@ -44,8 +44,9 @@ def create_user(playwright: Playwright, browser_name: str, username: str, passwo page.close() context.close() browser.close() - except Error as e: - log_note(f"Exception occurred: {e.message}") + except Exception as e: + if hasattr(e, 'message'): # only Playwright error class has this member + log_note(f"Exception occurred: {e.message}") log_note(f"Page content was: {page.content()}") raise e diff --git a/energy-tests/nextcloud_docs_collaboration.py b/energy-tests/nextcloud_docs_collaboration.py index 6b63b9f7..b4114dad 100644 --- a/energy-tests/nextcloud_docs_collaboration.py +++ b/energy-tests/nextcloud_docs_collaboration.py @@ -4,7 +4,7 @@ import string import sys from time import time_ns, sleep -from playwright.sync_api import Playwright, sync_playwright, expect, Error +from playwright.sync_api import Playwright, sync_playwright, expect def get_random_text() -> str: @@ -46,10 +46,10 @@ def collaborate(playwright: Playwright, browser_name: str) -> None: with contextlib.suppress(Exception): sleep(5) docs_user.get_by_role("button", name="Close modal").click(timeout=15_000) - admin_user.get_by_role("link", name="Files").click() - docs_user.get_by_role("link", name="Files").click() - admin_user.get_by_role("link", name="Shares").click() - docs_user.get_by_role("link", name="Shares").click() + admin_user.get_by_role("link", name="Files", exact=True).click() + docs_user.get_by_role("link", name="Files", exact=True).click() + admin_user.get_by_role("link", name="Shares", exact=True).click() + docs_user.get_by_role("link", name="Shares", exact=True).click() admin_user.get_by_role("link", name="colab_meeting .md").click() docs_user.get_by_role("link", name="colab_meeting .md").click() @@ -85,8 +85,9 @@ def collaborate(playwright: Playwright, browser_name: str) -> None: browser.close() browser_two.close() - except Error as e: - log_note(f"Exception occurred: {e.message}") + except Exception as e: + if hasattr(e, 'message'): # only Playwright error class has this member + log_note(f"Exception occurred: {e.message}") log_note(f"Page content was: {docs_user.content()}") log_note(f"Page content was: {admin_user.content()}") raise e diff --git a/energy-tests/nextcloud_install.py b/energy-tests/nextcloud_install.py index 754579e8..10d0d044 100644 --- a/energy-tests/nextcloud_install.py +++ b/energy-tests/nextcloud_install.py @@ -1,7 +1,7 @@ import sys from time import time_ns -from playwright.sync_api import sync_playwright, Error +from playwright.sync_api import sync_playwright def log_note(message: str) -> None: timestamp = str(time_ns())[:16] @@ -39,8 +39,9 @@ def main(browser_name: str = "chromium"): log_note("Installation complete") browser.close() - except Error as e: - log_note(f"Exception occurred: {e.message}") + except Exception as e: + if hasattr(e, 'message'): # only Playwright error class has this member + log_note(f"Exception occurred: {e.message}") log_note(f"Page content was: {page.content()}") raise e diff --git a/energy-tests/nextcloud_talk.py b/energy-tests/nextcloud_talk.py index e5bbcf1d..28fdab7d 100644 --- a/energy-tests/nextcloud_talk.py +++ b/energy-tests/nextcloud_talk.py @@ -4,7 +4,7 @@ import string import sys from time import sleep, time_ns -from playwright.sync_api import Playwright, sync_playwright, expect, Error +from playwright.sync_api import Playwright, sync_playwright, expect def log_note(message: str) -> None: timestamp = str(time_ns())[:16] @@ -48,7 +48,7 @@ def create_conversation(playwright: Playwright, browser_name: str) -> str: page.get_by_role("button", name="Close modal").click(timeout=15_000) log_note("Open Talk app") - page.get_by_role("link", name="Talk", exact=True).click() + page.locator('#header').get_by_role("link", name="Talk", exact=True).click() page.wait_for_url("**/apps/spreed/") # Second welcome screen? @@ -65,7 +65,8 @@ def create_conversation(playwright: Playwright, browser_name: str) -> str: page.click('.toast-close') log_note("Create conversation") - page.get_by_role("button", name="Create a new group conversation").click() + page.click("span.dots-vertical-icon") + page.get_by_text("Create a new conversation").click() # Different placeholder names and capitalization on apache vs FPM page.get_by_placeholder("name").fill("Random talk") page.get_by_text("Allow guests to join via link").click() @@ -80,8 +81,9 @@ def create_conversation(playwright: Playwright, browser_name: str) -> str: return page.url - except Error as e: - log_note(f"Exception occurred: {e.message}") + except Exception as e: + if hasattr(e, 'message'): # only Playwright error class has this member + log_note(f"Exception occurred: {e.message}") log_note(f"Page content was: {page.content()}") raise e