Как перемещаться и вводить данные во вложенном фрейме / форме с помощью Mechanize - PullRequest
1 голос
/ 22 июня 2011

Я хочу ввести текст (логин, пароль) внутри страницы с фреймами.Структура выглядит примерно так:

<html xmlns="http://www.w3.org/1999/xhtml">
      <head>Whatever</head>
      <body id="Body">
            <form id="frmM" onsubmit="javascript:return whatever();" action="Login.aspx" method="post">
                  <div id="alldata">
                        <div id="header">
                              <iframe id="Login_SSL" scrolling="no" frameborder="1" src="https://www.whatever.com/User/LoginFrame.aspx?redir=/User/Login.aspx">
                                    <html xmlns="http://www.w3.org/1999/xhtml">
                                          <body onload="refreshParent()">
                                                <form id="form1" action="LoginFrame.aspx?redir=%2fUser%2fLogin.aspx" method="post">
                                                      <div id="loginRow" class="loginMenuRow" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'cmdLogin')">
                                                            <input id="cmdLogin" type="submit" tabindex="3" onclick="aspnetForm.target ='_top';" value="Login" name="cmdLogin">
                                                             <input id="Password" class="textbox" type="password" tabindex="2" name="Password">
                                                             <span id="lblPassword" class="loginMenu">Password:</span>
                                                       </div>
                                                </form>
                                            </body>
                                      </html>
                              </iframe>
                        </div>
                  </div>
            </form>
     </body>
</html>

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

>>br.select_form("form1")
FormNotFoundError: no form matching name 'form1'
>>[f.attrs['id'] for f in br.forms()]
['frmM']

Как мне войти в системуна этот сайт?

1 Ответ

4 голосов
/ 08 ноября 2011

2 варианта:

  • Получите прямой доступ к URL-адресу внутри iframe, а затем войдите в свою форму для входа

  • Войдите на сайт из браузераи использовать расширение как Firebug для отслеживания опубликованных данных.Затем повторите этот запрос для автоматического входа в систему.

...