Заполнение веб-формы через EXCEL VBA. Не удается найти идентификатор или что-либо для заполнения формы. - PullRequest
0 голосов
/ 26 мая 2019

<div class="GHNF1GMDEI GHNF1GMDGI"><div class="GHNF1GMDJK">Reference</div></div>

<div class="GHNF1GMDGI"

<div class="GHNF1GMDJK">Reference</div>

адрес дата html коды

<input type="text" class="GHNF1GMDGM" maxlength="64" style="width: 350px;">

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

Я пробовал много разных способов:

  Sub automaticformfilling()

    Dim ie As InternetExplorer
    Dim doc As MSHTML.HTMLDocument
    Set ie = CreateObject("internetexplorer.application")

    With ie
        .Visible = True
        .navigate "xxxxxx"

        'Wait for loading
        Do While .Busy
            DoEvents
        Loop

        Do While .readyState <> 4
            DoEvents
        Loop   
    End With

    Set doc = ie.document        
    Set fname = doc.getElementById("j_username")
    fname.Value = "xxxx"

    Set lastName = doc.getElementById("j_password")
    lastName.Value = "xxxx"

    doc.getElementsByName("btn_submit")(0).Click
    'Set doc = ie.document
    'Set invdate = doc.getElementsByClassName("GHNF1GMDEI")
    'invdate.Value = "25"
    Set refname = doc.getElementsByName("GHNF1GMDGM")
    '.doc.getElementsByClassName ("GHNF1GMDGM")
    refname.Value = "923456"

End Sub

Пожалуйста, помогите мне с этой проблемой.

1 Ответ

0 голосов
/ 26 мая 2019

Ваша текущая ошибка связана с тем, что

Set refname = doc.getElementsByName("GHNF1GMDGM")

- это коллекция, а не отдельный элемент, поэтому вы не можете сделать:

refname.Value = "923456"

Вам необходимо использовать индекс, например,

refname(0).Value = "923456"

Кроме того, без url или html не могу много сказать ни о чем другом, что может быть неправильным.


Примечание:

Я бы сжал две ваши петли для загрузки страницы в одну:

While .Busy Or .readyState < 4: DoEvents: Wend
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...