I am attempting to find controls in my WPF application using Automation IDs and it seems my test is not able to find them for reasons I do not understand. This is happening with every control I have tried so far. Other frameworks I am evaluating (Coded UI, White) are able to find the controls using Automation IDs without issue, so I am not sure why Telerik cannot.
All I am trying to do here is launch the application and then click the "X" button in the top right to exit it. Here is my code:
Settings settings = new Settings();
Manager manager = new Manager(settings);
manager.Start();
var startInfo = new ProcessStartInfo();
startInfo.WorkingDirectory = <REDACTED>;
startInfo.FileName = <REDACTED>;
Process process = Process.Start(startInfo);
Thread.Sleep(1000);
manager.ConnectToApplication(process);
WpfWindow mainWin = manager.ActiveApplication.MainWindow;
mainWin.Find.ByAutomationId<Button>("PART_CloseButton").User.Click();
And here is the error information:
Test Name: TelerikTest
Test FullName: TelerikTest.UnitTest1.TelerikTest
Test Source: C:\git\UITestPrototype\TelerikTest\UnitTest1.cs : line 18
Test Outcome: Failed
Test Duration: 0:00:34.0393404
Result StackTrace:
at ArtOfTest.Common.WaitSync.CheckResult(WaitSync wait, String extraExceptionInfo, Object target)
at ArtOfTest.Common.WaitSync.For[T](Predicate`1 predicate, T target, Boolean invertCondition, Int32 timeout, WaitResultType errorResultType)
at ArtOfTest.WebAii.Silverlight.VisualWait.ForExistsInternal(Int32 timeout, Boolean invertCondition)
at ArtOfTest.WebAii.Silverlight.VisualWait.ForVisible(Int32 timeout)
at ArtOfTest.WebAii.Silverlight.VisualFind.ReturnOrThrow(FrameworkElement e, String throwMessage)
at ArtOfTest.WebAii.Silverlight.VisualFind.ByAutomationId(String id, String xamlTag)
at ArtOfTest.WebAii.Silverlight.VisualFind.ByAutomationId[T](String id)
at TelerikTest.UnitTest1.TelerikTest() in C:\git\UITestPrototype\TelerikTest\UnitTest1.cs:line 33
Result Message:
Test method TelerikTest.UnitTest1.TelerikTest threw exception:
ArtOfTest.Common.Exceptions.FindElementException: Element Not found!
FindExpression used:
[automationid 'Exact' PART_CloseButton] AND [xamltag 'Exact' Button]
For reference, here is the failing line of code written using White:
mainWin.Get<Button>(SearchCriteria.ByAutomationId("PART_CloseButton")).Click();
This code works perfectly so I know it is not a problem with the control not being there or the automation ID being wrong.
Does anyone have any idea what my problem could be? Thanks.