我正在使用shell.application的組合來查找我的相關Internet Explorer,然後使用UIAutomation來處理彈出窗口,該窗口用於在給定頁面上給出的文件下載。這工作很好,直到我有一個單一的Internet Explorer。現在我必須從Internet Explorer的四個不同選項卡執行相同操作。選擇Internet Explorer中的選項卡
該程序的Shell.application部分工作很好。但是爲了使UIAutomation工作,給定的網頁需要位於屏幕的前方。我想看看是否可以使用shell.application來實現,或者我願意提供建議。
注意我做了很多搜索,但無法找到正確的內容。我粘貼了這兩個代碼。
'Connect with ApplicationName
Set objShell = CreateObject("Shell.Application")
IE_count = objShell.Windows.Count
For x = 0 To (IE_count - 1)
On Error Resume Next ' sometimes more web pages are counted than are open
my_url = objShell.Windows(x).document.Location
my_title = objShell.Windows(x).document.Title
If my_title Like "ApplicationName" & "*" Then
Set ie = objShell.Windows(x)
'ie.<<want some kind of select option >>
Exit For
Else
End If
Next
'Save download - this code does not work unless the Internet explorer is in the front
Application.Wait Now() + TimeSerial(0, 0, 5)
Dim o As IUIAutomation
Dim e As IUIAutomationElement
Set o = New CUIAutomation
Dim h As Long
h = ie.Hwnd
h = FindWindowEx(h, 0, "Frame Notification Bar", vbNullString)
If h = 0 Then Exit Sub
Set e = o.ElementFromHandle(ByVal h)
Dim iCnd As IUIAutomationCondition
Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Save")
Dim Button As IUIAutomationElement
Set Button = e.FindFirst(TreeScope_Subtree, iCnd)
Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId)
InvokePattern.Invoke
謝謝,但我想我可能找到了解決方案。打開IE的單獨實例中的所有選項卡,然後使用ie.visible = false並再次使用ie.visible = true。必須對其進行測試。 –
這樣,我想在前面的IE瀏覽器出現...必須嘗試,看看這個工程 –