Как заполнить форму внутри iframe с помощью python - PullRequest
1 голос
/ 09 февраля 2012

Поэтому я пытаюсь автоматически зайти на сайт, используя этот скрипт на python.

from win32com.client import Dispatch
import win32com.client
import time,ids

IE=Dispatch("InternetExplorer.Application")
IE.Visible=1
IE.Navigate("Source.html")
while IE.ReadyState != 4:    # Wait for browser to finish loading.
    time.sleep(1)
doc = IE.Document # Get the document.
while doc.readyState != "complete": # Wait for document to finish
    time.sleep(1)
doc.Login.USER.value = ids.username    
doc.Login.PASSWORD.value = ids.password
doc.Login.submit() 
while IE.ReadyState != 4:    # Wait for browser to finish loading.
    time.sleep(1)
doc = IE.Document # Get the document.
while doc.readyState != "complete": # Wait for document to finish
    time.sleep(1)
time.sleep(30)
IE.Application.Quit();

Он отлично работает на обычных сайтах, но Source.html загружает сайт в Iframe.Поэтому поля имени пользователя и пароля находятся внутри Iframe, и я не знаю, как вводить в них данные.

1 Ответ

0 голосов
/ 10 февраля 2012

Возможно, попробуйте получить доступ к элементу iframe через его идентификатор.

Нечто длинное, страница / документ, на который вы загружаете, содержит следующий элемент:

<iframe id='myframe'>

Из вашего кода попробуйте что-то вроде этого, doc.myframe.Login.user

Одна вещь, которую вы можете сделать, это открыть python REPL и поэкспериментировать с вашим документом, чтобы выяснить, как получить доступ к элементу, который вы ищете.

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