我不能为我的生活找出如何用VBA点击下面的按钮。任何帮助,将不胜感激。我已经能够填充用户名/密码字段,因为他们有一个名称,所以我使用getElementsByName,但该按钮没有名称或ID。当按钮没有名字/ ID时,点击带有VBA的JS按钮
的特定按钮的代码是:
<table class="button"><tr><td><div class="button-left"><input type="submit" class="form-button" value="Submit" >
以下是完整的脚本/表单代码的情况下,它可以帮助
<form name="loginFormBean" method="post" action="/XXXXXXXX/login.do" onsubmit="return validateForm(this)">
<TABLE border="0" cellpadding="5" cellspacing="0">
<TR>
<TD class="bigGreyContent" nowrap>User ID</TD>
<TD class="bigGreyContent" align="left">
<input type="text" name="username" maxlength="50" size="40" value="" class="bgGreenColor">
</TD>
</TR>
<TR>
<TD class="bigGreyContent" nowrap>Password</TD>
<TD class="bigGreyContent" align="left">
<input type="password" name="password" maxlength="50" size="40" value="" class="bgGreenColor">
</TD>
</TR>
<TR>
<TD colspan="2" align="center">
<BR>
<table class="button"><tr><td><div class="button-left"><input type="submit" class="form-button" value="Submit" ></div><div class="button-right"></div></td></tr></table>
</TD>
</TR>
</TABLE>
</form>
编辑:我已经启用了以下引用(除了默认):
Microsoft HTML Object Library Microsoft Internet Controls Microsoft WinHTTP Services,Version 5.1 微软XML,V6.0
我当前的代码是:
Sub XXXX()
Dim objIE As InternetExplorer
Dim http As New MSXML2.XMLHTTP60
Dim html As New HTMLDocument
Dim btn As Object
Set objIE = New InternetExplorer
Set btn = html.getElementsByClassName("button-left")(0).getElementsByTagName("input")(0)
objIE.Visible = True
objIE.navigate "http://XXXX/login.jsp"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
objIE.document.getElementsByName("username")(0).Value = "XXXX"
objIE.document.getElementsByName("password")(0).Value = "YYYY"
btn.Click
End Sub
感谢您的回复,但是我收到以'Set btn'开头的行上的424/Object Required错误,有什么想法?从我所知道的情况来看,这是左按钮的第一个实例。 – Hydengard
请确保您的代码中包含以下内容:'Dim http As New MSXML2.XMLHTTP60' Dim html As New HTMLDocument'Dim btn As Object'。如果它仍然不起作用,请分享您的代码,这样我就可以停止猜测问题是什么。 – Tehscript
我已经添加了上面的代码和其他信息。现在我添加了您提供的两个额外的Dim,我得到一个91/Object变量或块变量未设置错误,与之前一样。 – Hydengard