Как получить имя активного профиля Google, когда я получаю активный URL-адрес из браузера Google Chrome, используя C # - PullRequest
0 голосов
/ 24 апреля 2018

Я использую этот код для получения URL-адреса открытой активной вкладки в браузере 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, поэтому в нем может быть больше, чем профиль с разными именами. Я хочу получить только текущее имя с URL-адресом, полученным из этой функции. Я могу одновременно открывать или использовать несколько профилей в Google Chrome, поэтому я хочу получить URL активной вкладки и имя профиля вместе с ним или адрес электронной почты этого профиля.
Это изображение с именем профиля. Я хочу, чтобы оно отправлялось из chrome с URL-адресом активной в данный момент вкладки. profile name
поэтому я ожидаю, что что-то подобное, например, будет сделано в C #, чтобы получить имя профиля
var SearchBar = root.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "profile email"));

И последнее, это могут быть c # или java-коды, если это лучше сделать, а также любое решение, которое можно получить на любом языке программирования, пожалуйста, помогите с любой информацией.
Заранее спасибо.

1 Ответ

0 голосов
/ 24 апреля 2018

Вам нужно немного погрузиться в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...