Событие Fire с vba & InternetExplorer.Применение для пересчета формы jquery

Я пытаюсь собрать данные с разных сайтов. Поэтому я использую Excel VBA и запустить Internet Explorer. Я могу заполнить нормальную форму. Но иногда мне нужно заполнить динамическую форму с помощью jquery-скрипта.

Форма активирует только все поля ввода (раскрывающиеся меню), если первые 2 поля заполнены и инициировано событие.

Таким образом, мой скрипт может заполнить форму, но не запускать событие "пересчета", которое необходимо.

Если вы заполняете форму вручную с помощью мыши, это работает. Как я могу симулировать это событие?

Это мой Excel VBA скрипт:

Sub test_fill_form()

Dim url1 As String
Dim url2 As String
Dim url3 As String

url1 = "https://auto."
url2 = "ar"
url3 = "do.ch/selling/?step=1&uniqueid=8a7d2327-f426-4df7-8291-d6b55fc62e3c"

Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")

ie.Visible = True
apiShowWindow ie.hwnd, SW_MAXIMIZE
ie.navigate url1 & "ric" & url2 & url3

While ie.readyState <> 4: DoEvents: Wend

ie.document.all("Article_ArticleDetails_AutoRegistrationMonth").Click
ie.document.getElementById("Article_ArticleDetails_AutoRegistrationMonth").value = "1"
ie.document.getElementById("Article_ArticleDetails_AutoRegistrationYear").value = "2013"
End Sub

2 ответа

Решение

Спасибо за вашу помощь

Теперь у меня есть решение:

ie.Document.getElementById("Article__").Click
ie.Document.getElementById("Article_ArticleDetails_").Focus
ie.Document.getElementById("Article_ArticleDetails_").Value = "9"

'This will run the java script / fire the recalc event
ie.Document.parentWindow.execScript "registrationUpdate()", "JavaScript"

Спасибо всем.

Для предоставленной ссылки в форме отключено раскрывающееся меню, но в нем есть элемент options, поэтому вы можете установить значение disabled как false и выполнить дальнейшую обработку. (В раскрывающемся списке не ожидается заполнение запроса ajax)

Sub test_fill_form()

Dim url1 As String
Dim url2 As String
Dim url3 As String

url1 = "https://auto."
url2 = "ar"
url3 = "do.ch/selling/?step=1&uniqueid=8a7d2327-f426-4df7-8291-d6b55fc62e3c"

Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")

ie.Visible = True
'apiShowWindow ie.Hwnd, SW_MAXIMIZE
ie.navigate url1 & "ric" & url2 & url3

While ie.readyState <> 4: DoEvents: Wend

ie.document.all("Article_ArticleDetails_AutoRegistrationMonth").Click
ie.document.getElementById("Article_ArticleDetails_AutoRegistrationMonth").Value = "1"
ie.document.getElementById("Article_ArticleDetails_AutoRegistrationYear").Value = "2013"
ie.document.getElementById("Article_ArticleDetails_AutoMakeId").disabled = False
ie.document.getElementById("Article_ArticleDetails_AutoModelId").disabled = False
ie.document.getElementById("Article_ArticleDetails_AutoFuel").disabled = False
End Sub
Другие вопросы по тегам