У меня возникли проблемы с отправкой формы отправки (я могу отправить форму, но я не могу отправить форму на странице, которая следует за первой).Отправка формы в mechanize
у меня есть:
browser = mechanize.Browser()
browser.set_handle_robots(False)
browser.open('https://www.example.com/login')
browser.select_form(nr=0)
browser.form['j_username'] = 'username'
browser.form['j_password'] = 'password'
req = browser.submit()
Это работает, как print req
приводит
`
<body onload="document.forms[0].submit()">
<noscript>
<p>
<strong>Note:</strong> Since your browser does not support JavaScript,
you must press the Continue button once to proceed.
</p>
</noscript>
<form action="https://www.example.com/Shibboleth.sso/SAML2/POST" method="post">
<div>
<input type="hidden" name="RelayState" value="cookie:95ca495c"/>
<input type="hidden" name="SAMLResponse" value="really long encoded value"/>
</div>
<noscript>
<div>
<input type="submit" value="Continue"/>
</div>
</noscript>
</form>
</body>
`
Но я получаю ошибки, когда я пытаюсь использовать req.select_form(nr=0)
Я предполагаю, что это, вероятно, от чего-то похожего на то, как механизация возвращает объекты от submit()
и что я собираюсь сделать это неправильно.
Любой вход или руководство будет оценено :)
Вы не забыли отправить эту первую форму, чтобы получить форму для входа? ('browser.submit()' после 'browser.select_form (nr = 0)') – mykhal
Нет, я установил req = browser.submit(), который отправляет первую форму, правильно? – Parker
Я думал, что вы получили реальную регистрационную форму после отправки первой формы переадресации. Так что на этой странице есть другая форма? ваш вопрос похож на меня [этот] (http://stackoverflow.com/questions/3901218/following-the-result-of-pressing-a-submit-button-in-python-mechanize), который, очевидно, тоже ваш :) – mykhal