Python ShellWindows Internet Explorer получить страницу источника - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь получить некоторые данные из всех запущенных экземпляров IE, чтобы перехватить зарегистрированное имя пользователя из источника страницы, я попытался с помощью selenium заставить пользователей запускать IE из selenium, а затем, когда пользователь входит в систему, я получаю имя пользователя и это вроде работает только в первой вкладке, если пользователь переходит на страницу входа из другого окна / вкладки, я не могу это поймать. Похоже, селен с IE window_handles не очень хорошо работает. Ища в Google, я мог бы найти что-то лучшее для меня, которое могло бы получить некоторые данные из стандартного Internet Explorer во всех запущенных вкладках / окнах. После этой ссылки я смог получить заголовок страницы и URL-адрес местоположения, а также объяснить, как заставить страницу перейти на другой URL-адрес. Теперь я не могу найти источник страницы.

from win32com.client import Dispatch 
from win32gui import GetClassName

ShellWindowsCLSID = '{9BA05972-F6A8-11CF-A442-00A0C90A8F39}'
ShellWindows = Dispatch ( ShellWindowsCLSID )

for sw in ShellWindows :
    if GetClassName ( sw . HWND ) == 'IEFrame' :
        print(sw)
        print(sw.LocationName)
        print(sw.LocationURL)
        #sw.Document.Location = "http://python.org" navigating to another url
        print(50 * '-')

1 Ответ

0 голосов
/ 09 апреля 2019

Я нашел решение по этой ссылке , поэтому в основном, чтобы получить страницу Source

from win32com.client import Dispatch 
from win32gui import GetClassName

ShellWindowsCLSID = '{9BA05972-F6A8-11CF-A442-00A0C90A8F39}'
ShellWindows = Dispatch ( ShellWindowsCLSID )

for sw in ShellWindows :
    if GetClassName ( sw . HWND ) == 'IEFrame' :
        #print the source
        print(sw.Document.body.outerHTML)

        #get all elements
        elements = sw.Document.all

        #get all inputs
        inputs = [x for x in elements if x.tagName == "INPUT"] # tag name is always uppercase

        #get all buttons
        buttons = [x for x in elements if x.tagName == "BUTTON"]

        #get by class name
        rows = [x for x in elements if "row" in x.className.split(' ')]

        #get by id
        username = [x for x in elements if x.getAttribute("id") == "username"]

Анализируя файл IEC.py, вы можете увидеть, что вы можете установить входное значение или нажать кнопкуи т. д.

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