C# 从firefox 8获取url不再工作

C# 从firefox 8获取url不再工作,c#,.net,visual-studio-2010,firefox,automation,C#,.net,Visual Studio 2010,Firefox,Automation,我有一个windows应用程序c#捕获正在运行的firefox实例的url。 我一直使用“MozillaContentWindow”获取firefox URL,但我不明白为什么它不再有效 string s = GetUrlFromBrowsersWithIdentifier("MozillaContentWindow", foreGround); public string GetUrlFromBrowsersWithIdentifier(string identifier, int fore

我有一个windows应用程序c#捕获正在运行的firefox实例的url。 我一直使用“MozillaContentWindow”获取firefox URL,但我不明白为什么它不再有效

string s = GetUrlFromBrowsersWithIdentifier("MozillaContentWindow", foreGround);

public string GetUrlFromBrowsersWithIdentifier(string identifier, int foreground)
    {
        try
        {
            IntPtr ptr = new IntPtr(foreground);
            var aeBrowser = AutomationElement.FromHandle(ptr);
            return aeBrowser == null ? "" : GetURLfromBrowser(aeBrowser, identifier);
        }
        catch (Exception ex)
        {
            return "";
        }
    }

    string GetURLfromBrowser(AutomationElement rootElement, string identifier)
    {
        try
        {

            Condition condition1 = new PropertyCondition(AutomationElement.IsContentElementProperty, true);

            Condition condition2 = new PropertyCondition(AutomationElement.ClassNameProperty, identifier);

            var walker = new TreeWalker(new AndCondition(condition1, condition2));

            var elementNode = walker.GetFirstChild(rootElement);

            if (elementNode != null)
            {
                var p = elementNode.GetSupportedPatterns();

                if (p.Any(autop => autop.ProgrammaticName.Equals("ValuePatternIdentifiers.Pattern")))
                {
                    var valuePattern = elementNode.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;

                    if (valuePattern != null)
                        return (valuePattern.Current.Value);
                }
            }
        }
        catch
        {
            return "";
        }

        return "";

    }
现在,当它进入“walker.GetFirstChild(rootElement);”时,它就停在那里。我不明白为什么。这只发生在最新版本的firefox上

他们是否更改了包含url的值栏的名称


感谢您

尝试在较新版本中使用MozillaWindowContentClass。

我看不到您使用“WWW_GetWindowInfo”@Alastair的代码。对不起,应该是“MozillaContentWindow”,我只是在较旧的firefox版本中尝试过,效果不错,但不是最新版本。