Tengo problemas para enviar el resultado de un envío de formulario (puedo enviar un formulario, pero no puedo enviar el formulario en la página que sigue al primero).Envío de un formulario en mecanizado
tengo:
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()
Esto funciona, como print req
resultados en
`
<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>
`
Pero tengo errores cuando intento utilizar req.select_form(nr=0)
Supongo que esto es probablemente algo así como la forma en que mechanize devuelve objetos desde submit()
y que estoy haciendo esto de la manera incorrecta.
Cualquier entrada o guía serían apreciados :)
¿no se olvidó de enviar este primer formulario para obtener el formulario de inicio de sesión? ('browser.submit()' after 'browser.select_form (nr = 0)') – mykhal
No, configuro req = browser.submit(), que envía el primer formulario, ¿no? – Parker
pensé que obtendría el formulario de inicio de sesión real después de enviar el primer formulario de redirección ... ¿hay otro formulario en esta página? tu pregunta me parece a mí [ésta] (http://stackoverflow.com/questions/3901218/following-the-result-of-pressing-a-submit-button-in-python-mechanize), que obviamente también es tuya :) – mykhal