I am trying to read the TITLE and URL from the Microsoft EDGE browser. Doing this with System.Windows.Automation is most preferable since the code base already uses this for other problems.
- Is this possible with System.Windows.Automation?
- How to access the url?
Currently, I'm so far away:
AutomationId "TitleBar" ClassName "ApplicationFrameWindow" Name = [string] => Reading out this element gives me the TITLE => Walking it children, I find the item "addressEditBox": AutomationId "addressEditBox" ClassName "RichEditBox" Name "Search or enter web address" => I always get back the string "Search or enter web address" => This is the control where the url is in, though it isn't updated as the user goes to a website, it always returns a fixed string.
In code:
var digger1 = AutomationElement.FromHandle(process.MainWindowHandle).RootElement.FindAll(TreeScope.Children, Condition.TrueCondition); foreach(AutomationElement d1 in digger1 { if(d1.Current.ClassName.Equals("ApplicationFrameWindow")) { var digger2 = d1.FindAll(TreeScope.Children, Condition.TrueCondition); foreach(AutomationElement d2 in digger2) { if(d2.Current.ClassName.Equals("Windows.Ui.Core.CoreWindow")) { var digger3 = d2.FindAll(TreeScope.Children, Condition.TrueCondition); foreach(AutomationElement d3 in digger3) { if(d3.Current.AutomationId.Equals("addressEditBox")) { var url = d3.Current.Name; return url; } } } } } }
source share