我正在尝试通过mechanize提交登录表单,但是我在表单上看到的内容有点奇怪。有一个表格,其中包含8个按钮;
{buttons
[button:0x3fcd204e974c type: button name: value: ]
[button:0x3fcd204e9684 type: button name: value: ]
[button:0x3fcd204e95bc type: button name: value: ]
[button:0x3fcd204e94f4 type: button name: value: ]
[button:0x3fcd204e942c type: button name: value: ]
[button:0x3fcd204e9364 type: button name: value: ]
[button:0x3fcd204e929c type: button name: value: ]
[button:0x3fcd204e91d4 type: button name: value: ]}
第一个我非常确定,从实际的html计算按钮及其顺序,是我想要选择提交登录表单的按钮。
form.submit
只返回同一页面,但不再设置密码字段,用户名仍然设置。
我想知道如何专门选择第一个按钮。
buttons.first.click
,buttons.firist.submit
,.select
或.submit
也无法正常工作。我想点击的实际按钮的html'看起来像;
<button onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(''); __doPostBack('cmdLogin','')" id="cmdLogin" type="button" tabindex="5" class="btn btn-primary"></button>
你能帮我理解如何机械化选择和点击&#39;上面的按钮。我偶然可以为页面中的其他字段设置值,只是提交我遇到问题的表单。
用户名和密码在真实浏览器中成功登录。
我看不到任何与登录页面有关的javascript,除非点击返回键时点击按钮的脚本除外:
<script type="text/jscript">
$(document).ready(function () {
$('a[rel*="external"]').click(function () { this.target = "_blank"; });
$(".qhelp").popover();
$(".no-jump").click(function (e) { e.preventDefault(); });
$("#div-all-quotes").hide();
$("#button-all-quotes").click(function () {
$("#div-all-quotes").toggle();
});
$("#txtEnterUserName").keyup(function(event){
if(event.keyCode == 13){
$("#cmdLogin").click();
}
});
$("#txtEnterPassword").keyup(function(event){
if(event.keyCode == 13){
$("#cmdLogin").click();
}
});
});
</script>
我想知道是否;
button onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(''); __doPostBack('cmdLogin','')
上面的按钮上的js是否阻止我提交?我找不到与页面上运行相关的功能,无论是通过检查员还是查看浏览器加载的html脚。
谢谢。