我在提交表单提交的结果问题提交表单(我可以提交一个表单,但我不能提交下面的第一页上的表格)。在机械化
我:
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.select_form(nr = 0)''后的'browser.submit()') – mykhal 2010-10-18 02:52:48
不,我设置req = browser.submit(),它提交第一个表单,对不对? – Parker 2010-10-18 02:54:09
我以为你在提交第一个重定向表单之后得到真正的登录表单..所以在这个页面中有另一个表单?你的问题类似于我[这一个](http://stackoverflow.com/questions/3901218/following-the-result-of-pressing-a-submit-button-in-python-mechanize),这显然也是你们的:) – mykhal 2010-10-18 02:56:23