WebViewDriver.Selenium.AppiumMac
0.3.0
dotnet add package WebViewDriver.Selenium.AppiumMac --version 0.3.0
NuGet\Install-Package WebViewDriver.Selenium.AppiumMac -Version 0.3.0
<PackageReference Include="WebViewDriver.Selenium.AppiumMac" Version="0.3.0" />
<PackageVersion Include="WebViewDriver.Selenium.AppiumMac" Version="0.3.0" />
<PackageReference Include="WebViewDriver.Selenium.AppiumMac" />
paket add WebViewDriver.Selenium.AppiumMac --version 0.3.0
#r "nuget: WebViewDriver.Selenium.AppiumMac, 0.3.0"
#:package WebViewDriver.Selenium.AppiumMac@0.3.0
#addin nuget:?package=WebViewDriver.Selenium.AppiumMac&version=0.3.0
#tool nuget:?package=WebViewDriver.Selenium.AppiumMac&version=0.3.0
WebViewDriver.Selenium.AppiumMac
This optional package provides trusted mouse and keyboard input for WebViewDriver through an Appium mac2 session.
The default backend in WebViewDriver.Selenium dispatches synthetic DOM
events. That is sufficient for most controls, but it cannot activate CSS
:hover, satisfy Event.isTrusted, or reliably drive every canvas and
HTML drag-and-drop implementation.
Prerequisites
Install Appium and the mac2 driver:
npm install --global appium
appium driver install mac2
Create and start the mac2 session for the application before connecting WebViewDriver. The mac2 session requires macOS Accessibility permission.
Setup
Pass the existing Appium driver to the WebViewDriver client:
using WebViewDriver.Selenium;
using WebViewDriver.Selenium.AppiumMac;
var options = new WebViewDriverClientOptions
{
ActionsBackend = Mac2ActionsBackend.ForDriver(mac2Driver),
};
using var driver = WebViewDriverClient.Connect(
port,
token,
target: "main",
options);
Selenium Actions submitted through driver now use the mac2 session:
new OpenQA.Selenium.Interactions.Actions(driver)
.MoveToElement(canvas)
.ClickAndHold()
.MoveByOffset(100, 40)
.Release()
.Perform();
WebViewDriver still handles DOM queries and script execution. The mac2 session only handles Actions.
Coordinate mapping
The backend finds XCUIElementTypeWebView in the mac2 accessibility tree and
maps CSS viewport coordinates into its screen rectangle. Page zoom is handled
using the ratio between the webview width and window.innerWidth.
If the application has more than one accessible webview, implement
IMac2Session to select the correct accessibility element and pass that
implementation to Mac2ActionsBackend.
See the project documentation for the complete WebViewDriver setup.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Appium.WebDriver (>= 8.4.0)
- WebViewDriver.Selenium (>= 0.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.0 | 54 | 9/18/2026 |
Initial 0.3 release.