From 9a4dea60af3324f81776c6d02f638ea37c05d82f Mon Sep 17 00:00:00 2001 From: Shane Neuville Date: Thu, 23 Jun 2022 11:20:02 -0500 Subject: [PATCH] Set ViewIdResourceName for Appium based tests --- .../AccessibilityDelegateAutomationId.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Xamarin.Forms.Platform.Android/AccessibilityDelegateAutomationId.cs b/Xamarin.Forms.Platform.Android/AccessibilityDelegateAutomationId.cs index a74fbba50d6..fd654baf935 100644 --- a/Xamarin.Forms.Platform.Android/AccessibilityDelegateAutomationId.cs +++ b/Xamarin.Forms.Platform.Android/AccessibilityDelegateAutomationId.cs @@ -34,10 +34,19 @@ public override void OnInitializeAccessibilityNodeInfo(global::Android.Views.Vie { host.ContentDescription = value; } - else if (host.ContentDescription == (_element as VisualElement)?.AutomationId) + else if (host.ContentDescription == (_element as Element)?.AutomationId) { host.ContentDescription = null; } + + if (_element is Element element && + !string.IsNullOrWhiteSpace(element.AutomationId) && + host?.Context != null) + { + // This is used by Appium and other automation testing frameworks + // to locate views + info.ViewIdResourceName = $"{host.Context.PackageName}:id/{element.AutomationId}"; + } } }