当我使用C#从谷歌浏览器浏览器获取活动网址时,如何获取有效的Google个人资料名称

时间:2018-04-24 18:11:54

标签: java c# google-chrome selenium selenium-chromedriver

我使用此代码从Google Chrome浏览器中获取当前有效的标签页打开网址。

 public static string GetActiveTabUrl()
    {
        Process[] procsChrome = Process.GetProcessesByName("chrome");

        if (procsChrome.Length <= 0)
            return null;

        foreach (Process proc in procsChrome)
        {
            // the chrome process must have a window 
            if (proc.MainWindowHandle == IntPtr.Zero)
                continue;

            // to find the tabs we first need to locate something reliable - the 'New Tab' button 
            AutomationElement root = AutomationElement.FromHandle(proc.MainWindowHandle);
            var SearchBar = root.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "Address and search bar"));
            if (SearchBar != null)
                return (string)SearchBar.GetCurrentPropertyValue(ValuePatternIdentifiers.ValueProperty);
        }

        return null;
    }

有什么方法可以返回当前的个人资料名称吗?我的意思是在谷歌浏览器浏览器的右上角找到了个人资料名称,因此它可能不仅仅是一个名称不同的个人资料,我只希望获得当前名称及其来自此功能的网址。我可以在Google Chrome中同时打开或使用多个配置文件,因此我想获取有效的标签网址和配置文件名称或该配置文件的电子邮件。
这是一个配置文件名称的图像,我希望它与chrome一起发送当前活动的选项卡URL。 profile name
所以我希望在c#中完成这样的事情来获取配置文件名称 var SearchBar = root.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "profile email"));

最后它可以是c#或java代码,如果它可以更好地做任何可以用任何编程语言获得它的解决方案,请帮助任何信息。
提前致谢。

1 个答案:

答案 0 :(得分:0)

您将不得不深入研究HTML。使用chrome的开发人员功能并检查HTML。您将找到用户名所在的类,并将文本存储为标题,并在下面找到示例。

<a class="gb_b gb_ib gb_R" href="https://accounts.google.com/" role="button" tabindex="0" title="Google Account: FillerFirstName FillerLastName (fillerEmail@gmail.com)" aria-expanded="false"><span class="gb_db gbii"></span></a>

您可以使用C#以多种不同方式完成此任务。我推荐Selenium。