如何机械化选择并按ID单击按钮?

时间:2017-07-18 14:55:27

标签: ruby-on-rails mechanize

我正在尝试通过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.clickbuttons.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脚。

谢谢。

0 个答案:

没有答案