microsoft / axe-windows

Automated accessibility testing engine for Windows applications
MIT License
137 stars 63 forks source link

[BUG] ERROR Automation017: Fail to get the root element of a process(11548) #662

Open karkarl opened 2 years ago

karkarl commented 2 years ago

Please check whether the bug has already been filed.

Describe the bug

I am trying to integrate Axe.Windows into Microsoft-ui-xaml testing pipeline and am running into some issues. It is returning this error:

Axe.Windows.Automation.AxeWindowsAutomationException: ERROR Automation017: Fail to get the root element of a process(11548): System.ArgumentNullException: Value cannot be null.
Parameter name: element
   at Axe.Windows.Actions.Contexts.ElementContext..ctor(A11yElement element)
   at Axe.Windows.Automation.TargetElementLocator.LocateRootElement(Int32 processId) ---> System.ArgumentNullException: Value cannot be null.

You can find the PR here, and the pipeline results here.

The VerifyAxeScanPasses pass locally with MSTests / TestExplorer via VS Studio but not with TAEF. It's failing trying to find the root UIA element of the MUXTestApp window, but I'm unsure why.

Desktop (please complete the following information):

Additional context

Priority requested -

karkarl commented 2 years ago

Update: the issue seems to be that it's missing a couple .dlls in the HelixPayload directory which is where the TAEF tests are running from.

karkarl commented 2 weeks ago

I am hitting the issue again, this time with only a handful of failed instances.

Axe.Windows.Automation.AxeWindowsAutomationException: Failed to get the root element(s) of the specified process(6352) ---> System.Runtime.InteropServices.COMException: Operation timed out. (0x80131505) Stack Trace: at UIAutomationClient.IUIAutomationTreeWalker.GetFirstChildElement(IUIAutomationElement element) at Axe.Windows.Desktop.UIAutomation.A11yAutomation.FindProcessMatchingChildrenOrGrandchildren(IUIAutomationElement root, Int32 pid, Boolean includeSelf) in D:\a_work\1\s\src\Desktop\UIAutomation\A11yAutomation.cs:line 113 at Axe.Windows.Desktop.UIAutomation.A11yAutomation.ElementsFromProcessId(Int32 pid, DesktopDataContext dataContext) in D:\a_work\1\s\src\Desktop\UIAutomation\A11yAutomation.cs:line 165 at Axe.Windows.Automation.TargetElementLocator.LocateRootElements(Int32 processId, IActionContext actionContext, IntPtr rootWindowHandle) in D:\a_work\1\s\src\Automation\TargetElementLocator.cs:line 26