Я использую комбинацию shell.application для поиска моего соответствующего Internet Explorer и с помощью UIAutomation, чтобы затем работать над всплывающим окном, которое поставляется для загрузки файла, которое я даю на данной странице. Это отлично поработало до того времени, когда у меня был единственный интернет-исследователь. Теперь я должен сделать то же самое с четырех разных вкладок 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, который я хочу видеть спереди, придет ... Придется попробовать посмотреть, работает ли это –