Python, диспетчер задач Chrome - программный доступ к тексту диспетчера задач Chrome БЕЗ ИСПОЛЬЗОВАНИЯ ХРОМИУМА - PullRequest
0 голосов
/ 04 марта 2019

Итак, так как многие сталкивались с использованием памяти Chrome, это может быть изнурительным, поэтому я хочу ПРОГРАММНОСТИЧЕСКИ * получить доступ к «Диспетчеру задач Chrome» или к чему-то эквивалентному, который отображает вкладки, их PID и подкадры (если это возможно), поэтому яМожно создать скрипт, чтобы убить их.После тонны чтения и множества ответов, указывающих на то, что это может быть невозможно, а некоторые, где постеры не ответили на вопрос, я просто не уверен, что ответ на ЭТОТ вопрос действительно окончательно дан.

Самое близкое, что я получил, это использование "chrome: // system /" в омнибоксе, но когда вы раскрываете "mem_usage", он не дает полезных номеров использования памяти на вкладку.и вообще не имеет подкадров, но с помощью этого метода я планировал использовать заголовки вкладок, чтобы убить вкладки, если бы я мог фактически получить их объем памяти.

Я пытался использовать win32gui FindWindowEx метод для получения текста, но для этого требуется, чтобы вы знали дочерний элемент отображаемого текста, поэтому я скачал «Window Detective» , чтобы увидеть название элемента (ов) «Chrome Task Manager»отображает, идентификаторы PID и имена вкладок для, но «Window Detective» вернулся только с «EmbeddedMenuWindowClass» , который является целым окном, не относящимсяd к отображаемому тексту.

Я предпринял мимолетное усилие, чтобы использовать Selenium , но кажется, что он просто не способен захватывать специальные меню внутри Chrome, просто захватывая имена вкладок и элементына веб-странице.

Я также попробовал "pywinauto" , но документация этой штуки действительно очень плохая.Я попытался использовать метод «connect», «hwndwrapper» и т. Д., Но понял, какие параметры использовать, как их передавать и что ожидать, а также как использовать полученный результат (например, список PID).или ручки) серьезно испорчен.Мне бы очень понравилось, если бы в документацию входил ВЫХОД, чтобы я мог на самом деле увидеть, что я должен получить, поэтому я не останавливаюсь на кроликах, только чтобы узнать, что все, что я тестировал, не дает того, что янаходясь в поиске.Извините, если это звучит плаксиво, но я потратил часы на чтение PDF и официальных документов и сильно разочаровался.

Я также попытался запустить Chrome через командную строку , следуя этому документу для ведения журнала (http://www.chromium.org/for-testers/enable-logging), но это может быть только Chromium, но я не могу найти созданный документ регистрации, и когда я перенаправляю его вывод в файл, я не получаю ничего полезного.

Но да, кто-нибудь знает, какполучить программный доступ к тексту «Диспетчера задач Chrome» или к чему-то еще, что даст аналогичный результат? Спасибо.

1 Ответ

0 голосов
/ 04 марта 2019

Зачем просто использовать модуль python os примерно так:

import subprocess as sub
p = sub.Popen(['your command', 'arg1', 'arg2', ...],stdout=sub.PIPE,stderr=sub.PIPE)
output, errors = p.communicate()
print output

Вы можете использовать команду ps, чтобы вывести список всех процессов, запущенных в chrome, однако это даст только pid, а не имя.я считаю, что единственный способ - получить данные напрямую из chorme, создав расширение.

https://developer.chrome.com/extensions/tabs

...