Excel VBA не может получить доступ к элементам html на странице меню Aspx - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в vba и html. Я пытаюсь создать макрос Excel для отправки данных формы, но не могу продолжить.

Я не могу поделиться html подробностями, поэтому попытался объяснить ниже.

У меня есть страница управления меню ttps : // www.abcmenu.Aspx

Эта страница вызывает URL-адрес ttps: // www.abc-employee.aspx с использованием javascript: void (0), который переносит форму на ту же страницу, когда я нажимаю на пункт меню сотрудника.

Страница не обновляется / не загружается, а URL-адрес остается неизменным.

Вот образец вида веб-сайта [Образец просмотра] [1]

Мне нужно заполнить сведения о форме и нажмите кнопку отправки, но не можете этого сделать. Я пробовал приведенный ниже код, но выдает ошибку времени выполнения, указывая требуемый объект.

Set htmldoc = ie.document

Dim emp as mshtml.ihtmlinputelement
Set emp = htmldoc.getelementbyid("fld_emp")
emp.value = 357690

Dim subm as mshtml.ihtmlelememt
Set subm = htmldoc.getelementbyid("btnk_sub")
Subm.click

Итак, я попытался отладить. Распечатать все элементы в теге формы, но он не возвращает элементы в форме.

Когда я выполнил код, он вернул только детали страницы главного меню, а не элементы формы.

Вот код, который я пытался напечатать html элементы


Dim htmla as mshtml.ihtmlelement 

Dim htmlas as mshtml.ihtmlelementcollection 


For each htmla in htmlas
 Debug.print htmla.innertext
Next htmla

Может ли кто-нибудь помочь, почему я не смог получить доступ к элементам html внутри формы, которая была открыта на странице главного меню

[1]: https://i.stack.imgur.com/uEktH.jpg! [Введите описание изображения здесь] (https://i.stack.imgur.com/eULHp.jpg)

1 Ответ

0 голосов
/ 10 августа 2020

Если вы пытаетесь получить доступ к элементам iframe на веб-странице ASP. Net с помощью VBA, вы можете обратиться к приведенному ниже примеру, который может помочь вам решить вашу проблему.

Sub demo()
 
    Dim URL As String
    Dim IE As Object
   
    Set IE = CreateObject("InternetExplorer.Application")
   
    IE.Visible = True
    
    URL = "https://example.com"
 
    IE.navigate URL
    
    Do While IE.readyState = 4: DoEvents: Loop
    Do Until IE.readyState = 4: DoEvents: Loop
 
    Dim elemCollection As IHTMLElementCollection
    
    Debug.Print (IE.document.getElementsByTagName("iframe")(0).contentDocument.getElementsByName("fname")(0).Value)
    
    Set IE = Nothing
End Sub

Вывод :

введите описание изображения здесь

...