Skip to content

refactor: Selenium 4 + Appium Upgrade#282

Draft
jamesmcroft wants to merge 22 commits into
mainfrom
u/jamescroft/selenium-appium-upgrade
Draft

refactor: Selenium 4 + Appium Upgrade#282
jamesmcroft wants to merge 22 commits into
mainfrom
u/jamescroft/selenium-appium-upgrade

Conversation

@jamesmcroft
Copy link
Copy Markdown
Member

This pull request overhauls the entire repository in support of the latest Selenium 4 release and Appium's v8 .NET client.

Important

This change will trigger a major v1 release of Legerity.

Major changes include:

  • All Legerity packages now target .NET 10.0 exclusively - if test projects target .NET Framework or older .NET Core versions, you'll need to upgrade your TFM.
  • Appium .NET Client 8.x and Selenium 4.x support - this is the most significant change and affects the entire driver and element reference in the framework. Release notes and migration guidance has been provided in the updated docs.
  • Introduced new Legerity.WindowsDriver - a W3C WebDriver-compliant HTTP server for Windows desktop UI testing, built with ASP.NET Core and FlaUI for running any UI test against Windows apps (with or without Legerity).
  • Fluent selector chaining - By extensions to improve developer experience (e.g. page.FindElement(By.TagName("button").WithText("Accept")); for finding elements with specific text, or page.FindElements(By.Id("form").ThenFind(By.TagName("input"))); to find nested children in an element).
  • Thread-safe parallel testing - driver lifecycle has been reworked for safe parallel execution - each test context gets its own driver reference.
  • Removed 3rd party control wrapper packages from main repo - including MADE.NET UI (no longer supported), Telerik.UWP, and Windows Community Toolkit.

…cement

W3C WebDriver compliant server built on ASP.NET Core and FlaUI that replaces the deprecated WinAppDriver for Windows UI Automation testing.

- ASP.NET Core Kestrel server with W3C WebDriver protocol endpoints
- FlaUI UIA3 for element finding, interaction, and screenshots
- Session management with app launch by PackageFamilyName, exe path, or desktop root
- Element finding by AutomationId, Name, ClassName, XPath, TagName
- Element interaction via UIA patterns with mouse/keyboard fallback
- Ships as a NuGet package with the exe in a tools/ folder
- LegerityWindowsDriverHelper auto-discovers the exe from PATH, local build output, or NuGet cache
- Removes WinAppDriver helper, exceptions, and LaunchWinAppDriver property in favor of LaunchDriver
- Updates test pages for WinUI 3 Gallery app compatibility
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant