Vba для управления всплывающим столом в IE - PullRequest
0 голосов
/ 25 января 2020

Я хочу щелкнуть переключатель в таблице и указать значение в поле в таблице ниже.

enter image description here

Таблица появится после нажатия этой ссылки на файл.
однако мои HTMLdocument(HTMLDoc) чувствуют себя разбитыми, когда это происходит. Мой код не работает, чтобы нажать Ok на этой таблице

Вот мой код

Set IE2 = CreateObject("InternetExplorer.Application")
apiShowWindow IE2.hwnd, SW_MAXIMIZE

'Set IE.Visible = True to make IE visible, or False for IE to run in the background
IE2.Visible = True
IE2.Visible = False
IE2.Visible = True

'Define URL
URL = "https://dgspj-prod.ptcmanaged.com/intellicus/core/SavedReportList.jsp?CATEGORYID="

'Navigate to URL
IE2.navigate URL

' Wait while IE loading...
Do While IE2.readyState = 4: DoEvents: Loop   'Do While
Do Until IE2.readyState = 4: DoEvents: Loop   'Do Until

Set HTMLDoc = IE2.document

    'below not fulfilled in table
    HTMLDoc.getElementById("rdbSeparatorCustom").Click
    HTMLDoc.getElementById("TXT_CSV_COLUMN_SEPARATOR").Value = "~"
    HTMLDoc.getElementById("rdbEnclosureCustom").Click
    HTMLDoc.getElementById("TXT_CSV_COLUMN_ENCLOSURE").Value = ""

    HTMLDoc.querySelector("input[value='Ok']").Click 'not work
    HTMLDocDoc.getElementById("btnSubmit").Click 'not work too

Вот IE Html

<LABEL class=option-label style="MARGIN-LEFT: 42px"><INPUT onclick='fnEnableDisableControls(this,"ENCLOSURE","csv");' id=rdbEnclosureCustom type=radio value=CUSTOM name=CSV_COLUMN_ENCLOSURE_TYPE>Custom</LABEL>
<DIV class=win-btn-wpr><INPUT onclick=fnSetIsDirty();fnSubmit(); id=btnSubmit class="cssButton btn-blue" type=button value=Ok name=btnSubmit> <INPUT onclick=fnHideDiv() id=btnCancel class=cssButton type=button value=Cancel name=btnCancel> </DIV>  

Спасибо

1 Ответ

0 голосов
/ 27 января 2020

Кажется, что код VBA может хорошо работать с предоставленным кодом HTML. Есть ли ошибка при запуске кода VBA и в какой строке происходит ошибка? Не могли бы вы дать HTML код, который может воспроизвести проблему ? Я протестировал следующий код VBA, и он может щелкнуть переключатель и кнопку отправки :

Sub LOADIE()
Set IE2 = CreateObject("InternetExplorer.Application")

'Set IE.Visible = True to make IE visible, or False for IE to run in the background
IE2.Visible = True

'Define URL
URL = "http://test page"

'Navigate to URL
IE2.navigate URL

' Wait while IE loading...
Do While IE2.readyState = 4: DoEvents: Loop   'Do While
Do Until IE2.readyState = 4: DoEvents: Loop   'Do Until

Set HTMLDoc = IE2.document

HTMLDoc.getElementById("rdbSeparatorCustom").Click
HTMLDoc.getElementById("TXT_CSV_COLUMN_SEPARATOR").Value = "test"
HTMLDoc.getElementById("rdbEnclosureCustom").Click
HTMLDoc.getElementById("TXT_CSV_COLUMN_ENCLOSURE").Value = "test"

HTMLDoc.getElementById("btnSubmit").Click

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...