使用按名称引用的vba自动执行登录详细信息

时间:2015-05-05 00:04:46

标签: vba login browser-automation

我一直在尝试从Intranet数据站点自动检索数据。该网站受密码保护。我之前有自动文本框输入,但用户名和密码输入的输入标记 id 属性设置,这会导致我出现问题。

他们都设置了名称属性集,但我不确定如何使用此信息输入相关的用户名和密码详细信息。

登录页面的相关源代码:

<form method=POST action='../authentication.asp' name=frmLogin target='_parent'>
<table width='100%' height='100%'>
    <tr><td align=center valign=middle>
        <table class=dialogOuter>
            <tr class=dialogTitle><td>Logon</td></tr>
            <tr><td>
                <table class=dialogInner>
                    <tr>
                        <td width=100>User Name</td>
                        <td><input name=Username /></td>
                    </tr>
                    <tr>
                        <td>Password</td>
                        <td><input type=password name=Password /></td>
                    </tr>
                    <tr>
                        <td colspan=2 align=right>
                            <input class=Button type=submit value=Logon />
                        </td>
                    </tr>
                </table>            
            </td></tr>
        </table>
    </td></tr>
    <tr>
        <td align=center valign=bottom>Version: 4.4.1.8
  </td>
    </tr>
</table>            
<!-- Set the UserName input field to take focus, improved useability -->
<script language="JavaScript">
<!--
document.frmLogin.Username.focus();
//-->
</script>
</form>

使用变量 ie 在类模块中调用网站以表示Internet Explorer对象。通常,当我将文本输入到文本框时,我使用类似于ie.document.getElementById("Username").innerText = Username的代码,但是这显然是通过 id 属性引用的对象,在这种情况下没有设置。我已经浏览了在线指南,很多人似乎建议开始ie.document.all("Username")的代码,但我不确定如何正确使用它,我的intellisense似乎不喜欢所有命令(据我所知,所有相关的参考资料都已启用。)

我需要的是输入一个字符串到用户名和密码文本框,因为我很熟悉如何提交表格。

1 个答案:

答案 0 :(得分:0)

您可以使用getElementsByTagName("input")。因为可能有多个结果(“...元素 s ...”),这将返回一个数组,第一个元素是用户名,第二个元素是密码。

<强>用法:

getElementsByTagName("input")(0) ' --> username
getElementsByTagName("input")(1) ' --> password
getElementsByTagName("input")(2) ' --> button

要阅读或写入字段的内容,请使用.Value属性。

说明:

getElementsByTagName()按标记名称(例如<a><b><body>等)获取网页元素,而不是像代码段中的ID一样。< / p>