[英]vba ie navigate multiple sessions
我正在使用VBA通过此网站访问IE,但是有一个我不知道的问题。 该网页跟踪是否有多个打开的窗口会话,并在我开始导航到另一个窗口时注销我。 有没有办法在不断开连接的情况下继续会话并导航回上一页?
附带说明,该网页不是公共领域。
这是我不起作用的内容:
Dim IE As Object
Set IE = New InternetExplorerMedium
IE.Visible = True
'code to Login to webpage went here
Set doc = IE.document
doc.getElementById("txtFileNumber").Value = "12345678"
doc.getElementById("cmdSearch").Click
Do While .Busy Or .READYSTATE <> 4
DoEvents
Loop
Dim requested as Object
Dim trans As String
Set requested = doc.getElementById("TransitLink")
If requested.isDisabled = False Then
trans = requested.href
End If
IE.navigate trans ' <----msgbox comes up "Multiple sessions not allowed"
如果有帮助,这是HTML代码的一部分。
<a id="TransitLink" title="In Transit" class="button" onClick="inqPopups[7] = window.open(this.href, 'popup7', 'WIDTH=350,HEIGHT=250,scrollbars,resizable,status,toolbar=yes'); (document.getElementById('txtFileNumber')).focus(); (document.getElementById('txtFileNumber')).select(); inqPopups[7].focus(); return false;" href="TransactionInTransit.aspx?... style="color:Blue;">In Transit</a>
var inqPopups = new Array();
function closeSubWindow() {
for (var i = 0; i < inqPopups.length; i++) {
if (inqPopups[i] && !inqPopups[i].closed) {
inqPopups[i].close();
}
}
}
尝试使用With IE
并执行所有代码和End With
Dim IE As Object
Set IE = New InternetExplorerMedium
Wtih IE
.Visible = True
'code to Login to webpage went here
Set doc = IE.document
doc.getElementById("txtFileNumber").Value = "12345678"
doc.getElementById("cmdSearch").Click
Do While .Busy Or .readyState <> 4
DoEvents
Loop
Dim requested As Object
Dim trans As String
Set requested = doc.getElementById("TransitLink")
If requested.isDisabled = False Then
trans = requested.href
End If
.navigate trans
' Rest of code
.Quit ' close ie window
End With 'once done with IE window
由于您已Set IE = New
因此每次都会创建IE的新实例。 因此,要将其全部保留在一个窗口中,必须使用With IE
End With
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.