首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

IE自动登录有关问题

2013-11-19 
IE自动登录问题我用Delphi的if SUCCEEDED(spDisp.QueryInterface(IHTMLInputElement,aInputText)) and (aI

IE自动登录问题
我用Delphi的  
if SUCCEEDED(spDisp.QueryInterface(IHTMLInputElement,aInputText)) and (aInputText.name='username') then
aInputText.value='username1'

这种方式可以实现一些网站的用户名/密码赋值及自动登录,但是某个网站却怎么也实现不了,主要是用户名与密码的输入框没有name属性,只有一个class="Inputbox Username"这样的,网站的代码如下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>登录</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link href="Loginpage.css" rel="stylesheet" type="text/css"/>
    <script src="../main/js/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
 
            $(".inputname").focus(
                    function () {
                        $(".username_tip").hide();
                    }
            );
            $(".inputname").blur(
                    function () {
                        if ($(".inputname").val().length <= 0)$(".username_tip").show();
                    }
            );
            $(".username_tip").click(
                    function () {
                        $(".username_tip").hide();
                        $(".inputname").focus();
                    }
            );
 
            $('input.btnLogin').bind('click', Login);
 
            document.onkeydown = function (e) {
                var theEvent = window.event || e;
                var code = theEvent.keyCode || theEvent.which;
                if (code == 13) {
                    Login();
                    return false;
                }
 
            }
 
            var loac = window.location;
            var origin = '';
            if (loac.origin) {
                origin = loac.origin;
            } else {
                origin = loac.protocol + '//' + loac.host;
            }
 
            function Login() {
                $(".loginmsg").html('');
                //TODO: 配置登陆地址
                $.post(origin + "/userMapper/mapping",
                        {


                            login: $(".inputname").val(),
                            password: $(".inputpass").val()
                        },
                        function (data1, status) {
                            if (!data1 || !data1.success) {
                                //登陆失败
                                $(".loginmsg").html(data1.message || '');
                            }
                            else {
                                var $form = $('form.InputForm');
                           
                                $form.attr('action', 'http://10.*.*.*:9090/businesspublisher/login.do');
                                $form.attr('method', "POST");
 
                                //$('#ok').unbind('click',onSubmitClick);
                                $("#login_id").val(data1.user);
                                $("#password_id").val(data1.password);
                                $("#userId").val(data1.userId);
                                $("#userName").val(data1.userName);
                                $('#oksubmit').click();
                            }
                        });
 
            }
        });
    </script>
</head>
<body>
<div class="MainDiv">
    <div class="InputFloat">
        <div id="Logo" class="Logo">
        </div>
 
        <div class="SysName">
            <div class="SysNameTxt">
               **集团公司**管理系统</h1>
            </div>
 
        </div>
        <div class="InputDiv">
            <form class="InputForm">
                <div class="formlogin" style="display: none">
                    <input id="login_id" name="login"/>
                    <input id="userId" name="userId"/>


                    <input id="userName" name="userName"/>
                    <input id="password_id" name="password" type="password"/>
                    <input id="oksubmit" type="submit"/>
                </div>
                <div class="InputLeft">
                    <input class="btnLogin" type="button" value="登录" />
                </div>
                <div class="InputRight">
                    <div class="loginname">
                        <div class="input_lbl">用户名</div>
                        <div class="inputboxdiv">
                            <input class="inputbox inputname" type="text"></input>
                            <span class="username_tip" style="">请输入用户名</span>
                        </div>
                    </div>
                    <div class="passwd">
                        <div class="input_lbl">密 码</div>
                        <div class="inputboxdiv"><input class="inputbox inputpass" type="password"></input></div>
                    </div>
                </div>
            </form>
            <div class="loginmsg">
            </div>
        </div>
    </div>
</div>
</body>
</html>


麻烦熟悉html的朋友指点一下,谢谢! html?
[解决办法]
没有name属性,可以用遍历网页的方式得到对象,然后再控制。
[解决办法]
这么简单的道理,没有名字就遍历啊,又要问如何遍历,直接上代码吧:

procedure test(doc : IHTMLDocument2);
var
    allcs : IHTMLElementCollection;
    elm : IHTMLElement;
    i : Integer;
    tag,cls : string;
begin
    allcs := doc.all;
    for i:=0 to allcs.length-1 do
    begin
        elm := allcs.item(i,0) as IHTMLElement;
        tag := elm.tagName;
        if tag='INPUT' then
        begin
            cls := elm.className;
            if cls='inputbox inputname' then
            begin
                (elm as IHTMLInputTextElement).value := 'xxxx';
            end;
        end;


    end;
end;

热点排行