Влизането в AutoIT IE не намира обекти

Накарах AutoIt да работи със страницата за влизане в моя рутер. Но за нашия HP Pro Curve Switch.. Не мога да го накарам да работи...

#NoTrayIcon
#include <ie.au3>
$Address = "http://10.255.96.2/index.html"
$pwd="mypassword"

$oIE = _IECreate ($Address)
_IELoadWait($oIE)
$oForm = _IEFormGetObjByName ($oIE, "maindata")

for $stuff in $oForm
if $stuff.name = "password" and $stuff.type = "password" then _IEFormElementSetValue ($stuff, $pwd)
If $stuff.value == "Login" and $stuff.type = "submit" Then $stuff.click
Next

exit

Получавам "H:\loginToSwitch.au3" (10) : ==> Променливата трябва да е от тип "Object".:

По принцип „основните данни“ са неправилни.

Ето HTML кода, ако щракна с десния бутон върху страницата и видя изходния код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<meta name=Copyright content="Copyright (c) 2005 HP Networks, Inc. All Rights Reserved.">
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
<title>HP Networks Web Interface</title>
<script src="/mainjs.js" language=javascript type="text/javascript"></script>
<script language="javascript" type="text/javascript">
//<!--
checkFrame();   // Ensure we are not within a frame
implementLoginFrames('login.html');
document.write('<noframes>');
//-->
</script>
</head>

<body BGCOLOR="#DAE3EB">
<center>
<font color="#008BD1" face="Arial, Helvetica, sans-serif"><B>Please ensure that your browser supports Frames and Javascript, and that they are both enabled.</b></font>
</center>
<script language="javascript" type="text/javascript">
//<!--
document.write('<\/noframes>');
//-->
</script>
</body>
</html>

Въпреки това, когато използвам firefox за идентифициране на елементи... той ми дава напълно различен код (от който получих информацията за бутоните и текстовото поле):

    <html>
    <head></head>
    <frameset framespacing="0" border="0" frameborder="0" rows="80,*">
        <frameset framespacing="0" border="0" frameborder="0" cols="*,22"></frameset>
        <frame src="login.html" noresize="" name="loginFrame" scrolling="auto">
            #document
                <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
                <html>
                    <head></head>
                    <body onload="loadConfiguration();">
                        <script type="text/javascript" language="javascript"></script>
                        <form onsubmit="return login();" name="tF" method="post" action="login.html">
                            <table class="container" style="height: 650px">
                                <tbody>
                                    <tr>
                                        <td class="container">
                                            <div class="container">
                                                <div class="loginbox">
                                                    <!--

                                                     Login box HTML code here... 

                                                    -->
                                                    <table class="login">
                                                        <tbody>
                                                            <tr>
                                                                <td id="devname" class="hdr style2" style="color: #ffffff; font-family: Arial, Helvetica, sans-serif;" colspan="2"></td>
                                                            </tr>
                                                            <tr>
                                                                <td class="hdr style2" valign="top"></td>
                                                                <td class="maindata">
                                                                    <input id="password" type="password" onkeypress="capsCheck(event);" size="20" name="password" maxlength="16"></input>
                                                                    <script type="text/javascript" language="javascript"></script>
                                                                    <input class="button" type="submit" style="position: relative; top: 2;" value="Login"></input>
                                                                    <br></br>
                                                                    <span id="passwd" class="default" style="display: none;"></span>
                                                                </td>
                                                            </tr>
                                                            <tr></tr>
                                                            <tr></tr>
                                                        </tbody>
                                                    </table>
                                                    <span id="wrong" class="warning" style="display: none;"></span>
                                                    <br></br>
                                                    <span id="capsmsg" class="warning" style="display: none;"></span>
                                                    <br></br>


                                                    It is recommended that you use a minimum of

                                                    <br></br>

                                                    Microsoft® Internet Explorer 5.5 to view the Inter…

                                                    <br></br>
                                                    <br></br>
                                                    <!--

                                                     Login box HTML end... 

                                                    -->
                                                </div>
                                            </div>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                            <script type="text/javascript" language="javascript"></script>
                        </form>
                    </body>
                </html>
        </frame>
    </frameset>
    <noframes></noframes>
</html>

person ReportWarrior    schedule 26.08.2014    source източник
comment
Също така това показване, ако отида „debug“ на страницата:   -  person ReportWarrior    schedule 26.08.2014


Отговори (1)


_IEFormGetObjByName() Връща обектна променлива, а не колекция.

Използвайте _IETagNameAllGetCollection($oForm), за да изброите всички елементи в обект .

Редактиране:

Погледнах внимателно html и виждам, че полето за парола има атрибути ID и NAME. Използвайте _IEGetObjById, за да получите обекта на полето за парола.

#NoTrayIcon
#include <ie.au3>
$Address = "http://10.255.96.2/index.html"
$pwd="mypassword"

$oIE = _IECreate ($Address)
;_IELoadWait($oIE) Not needed because IECreate does wait for page to load by default.
$oPassword = _IEGetObjById($oIE, "password")
_IEFormElementSetValue ($oPassword, $pwd)

$oForm = _IEGetObByName($oIE, "tF")
_IEFormSubmit($oForm)
person Milos    schedule 28.08.2014