Автоматизация VBA IE через Excel – не может понять, как манипулировать ссылкой / элементом Java

Недавно я преподавал VBA, чтобы попытаться создать код, который в конечном итоге войдет на сайт для загрузки данных из электронной таблицы Excel.

В этот момент код войдет на сайт и переместит большую часть страниц, пока не появится экран поиска. Что происходит, так это то, что у меня код имеет уникальный идентификационный номер, чтобы подтянуть человека. На следующем экране после выполнения поиска сайт предоставляет список (который является всего лишь одним человеком из-за используемого идентификационного номера). Мне нужно иметь возможность «щелкнуть» имя человека, чтобы продолжить, но я не могу понять, как это сделать.

Я не могу предоставить фактический сайт и любые реальные идентификаторы моего кода, но я буду размещать то, что могу, в надежде, что кто-то сможет помочь.

Вот HTML (выдержка), таблица, в которой мне нужно щелкнуть, – это почти любое значение в этом блоке.

<tr> <td><input type='hidden' id='grdProfile' name='grdProfile' value="" /><table border='0' cellpadding='0' cellspacing='0' id='grdProfile_main' style="overflow:hidden;table- layout:fixed;position:relative;width:100%;" class="ig_2e49b359_r0 MT" onresize="igtbl_onResize('grdProfile');" onmousemove="igtbl_tableMouseMove (event,'grdProfile');" onmouseup="igtbl_tableMouseUp (event,'grdProfile');"><tr><td align="left" style="overflow:hidden;width:100%;"> <div id='grdProfile_hdiv' onscroll="igtbl_onStationaryMarginScroll(event, 'grdProfile', 'grdProfile_hdiv')" style='overflow:hidden;width:100%;position:relative;'> <table border='0' cellpadding='0' cellspacing='0' style='position:relative;table-layout:fixed;height:100%;width: 978px;' ' bandNo='0'>thead onmousedown='igtbl_headerClickDown(event,"grdProfile");' onmouseup='igtbl_headerClickUp(event,"grdProfile");' onmouseout='igtbl_headerMouseOut(event,"grdProfile");' onmousemove='igtbl_headerMouseMove(event,"grdProfile");' onmouseover='igtbl_headerMouseOver(event,"grdProfile");' oncontextmenu='igtbl_headerContextMenu(event,"grdProfile");' ondblclick='igtbl_cellDblClick(event,"grdProfile");'> <tr><th id='grdProfile_c_0_0' columnNo='0' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_1' columnNo='1' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_2' columnNo='2' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">Last Name</th> <th id='grdProfile_c_0_3' columnNo='3' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">First Name</th> <th id='grdProfile_c_0_4' columnNo='4' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">Middle Initial/Name</th> <th id='grdProfile_c_0_5' columnNo='5' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">AgentID</th> <th id='grdProfile_c_0_6' columnNo='6' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">SSN</th> <th id='grdProfile_c_0_7' columnNo='7' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">Profile Key</th> <th id='grdProfile_c_0_8' columnNo='8' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">CRD Number</th> <th id='grdProfile_c_0_9' columnNo='9' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">NPN</th> <th id='grdProfile_c_0_10' columnNo='10' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">UNID</th> <th id='grdProfile_c_0_11' columnNo='11' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">OFFICE_NBR</th> <th id='grdProfile_c_0_12' columnNo='12' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">DEPT_NBR</th> <th id='grdProfile_c_0_13' columnNo='13' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">FollowupId</th> <th id='grdProfile_c_0_14' columnNo='14' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">STATUS</th> <th id='grdProfile_c_0_15' columnNo='15' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">REGION</th> <th id='grdProfile_c_0_16' columnNo='16' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">RowState</th> <th id='grdProfile_c_0_17' columnNo='17' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">View</th> <th id='grdProfile_c_0_18' columnNo='18' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">Login Id</th> <th id='grdProfile_c_0_19' columnNo='19' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">Rep Id</th> <th id='grdProfile_c_0_20' columnNo='20' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">Special Handling Required?</th> <th id='grdProfile_c_0_21' columnNo='21' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">Special Handling Notes</th></tr> </thead></table></div></td></tr> <tr id="grdProfile_mr" style=""><td id="grdProfile_mc" align='left' style="width:100%;vertical-align:top;"> <div id="grdProfile_div" style="overflow:hidden;overflow-y:auto;width:100%;" onscroll='igtbl_onScroll(event,"grdProfile");' tabIndexPage='0' hideFocus='true'> <table id='G_grdProfile' bandNo='0' border='0' cellpadding='0' cellspacing='0' style='table-layout:fixed;width:978px;position:relative;' onSelectStart='igtbl_selectStart(event,"grdProfile");' onmousedown='igtbl_cellClickDown(event,"grdProfile");' onmouseup='igtbl_cellClickUp(event,"grdProfile");' oncontextmenu='igtbl_cellContextMenu(event,"grdProfile");' onmousemove='igtbl_cellMouseMove(event,"grdProfile");' onmouseover='igtbl_cellMouseOver(event,"grdProfile");' onmouseout='igtbl_cellMouseOut(event,"grdProfile");' ondblclick='igtbl_cellDblClick(event,"grdProfile");'> <colgroup><col width='20px' /><col width='145px' /><col width='143px' /><col width='100px' /><col width='100px' /> <col width='90px' /><col width='100px' /><col width='100px' /><col width='180px' /><col width='1px' style='display:none;' /><col width='1px' style='display:none;' /><col width='1px' style='display:none;' /> <col width='1px' style='display:none;' /><col width='1px' style='display:none;' /><col width='1px' style='display:none;' /> <col width='1px' style='display:none;' /><col width='1px' style='display:none;' /><col width='1px' style='display:none;' /><col width='1px' style='display:none;' /> <col width='1px' style='display:none;' /><col width='1px' style='display:none;' /><col width='1px' style='display:none;' /></colgroup> <thead style='display:none;' onmousedown='igtbl_headerClickDown(event,"grdProfile");' onmouseup='igtbl_headerClickUp(event,"grdProfile");' onmouseout='igtbl_headerMouseOut(event,"grdProfile");' onmousemove='igtbl_headerMouseMove(event,"grdProfile");' onmouseover='igtbl_headerMouseOver(event,"grdProfile");' oncontextmenu='igtbl_headerContextMenu(event,"grdProfile");'> <tr><th id='grdProfile_c_0_0' columnNo='0' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_1' columnNo='1' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_2' columnNo='2' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_3' columnNo='3' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_4' columnNo='4' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_5' columnNo='5' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_6' columnNo='6' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_7' columnNo='7' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_8' columnNo='8' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_9' columnNo='9' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_10' columnNo='10' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_11' columnNo='11' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_12' columnNo='12' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_13' columnNo='13' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_14' columnNo='14' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_15' columnNo='15' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_16' columnNo='16' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_17' columnNo='17' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH ">&nbsp;</th> <th id='grdProfile_c_0_18' columnNo='18' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_19' columnNo='19' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_20' columnNo='20' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> <th id='grdProfile_c_0_21' columnNo='21' height='20px' class="ig_2e49b359_r1 ig_2e49b359_r4 GRSHand ig_2e49b359_rh04 GH " style="display:none;">&nbsp;</th> </tr></thead> <tbody style="height:100%"> <tr id='grdProfile_r_0' style='height:20px;' DataKey='XXXXX3658'><td class="ig_2e49b359_r1 GRSHand"><nobr><span id='fup_agentstdsearch_***ID***'>0</span>&nbsp;&nbsp;</nobr></td> <td iDV="False" class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr><input type='checkbox' onpropertychange='igtbl_chkBoxChange(event,"grdProfile");' tabindex='-1' /></nobr></td> <td class="ig_2e49b359_r1 GRSHand"><nobr>***Last***</nobr></td><td class="ig_2e49b359_r1 GRSHand"><nobr>***First***</nobr></td> <td class="ig_2e49b359_r1 GRSHand"><nobr>***Middle***</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>***ID***</nobr></td> <td class="ig_2e49b359_r1 GRSHand"><nobr>***ID4***</nobr></td> <td class="ig_2e49b359_r1 GRSHand"><nobr>***ID2***</nobr></td> <td class="ig_2e49b359_r1 GRSHand"><nobr>&nbsp;</nobr></td> <td class="ig_2e49b359_r1 GRSHand"><nobr>***ID3***</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>***ID2***</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>***Center ID***</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>PROD</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>0</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>7040</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>&nbsp;</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>&nbsp;</nobr></td> <td class="ig_2e49b359_r1 GRSHand"><nobr><a href="javascript:void(0);" onClick="viewProfile('***ID***','***Last*** ***First***');">View Profile Summary</a></nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>&nbsp;</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>&nbsp;</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>&nbsp;</nobr></td> <td class="ig_2e49b359_r1 GRSHand" style="display:none;"><nobr>&nbsp;</nobr></td></tr></tbody></table></div></td></tr></table></td> 

Вот код, который я должен указать на то, что, как мне кажется, нужно щелкнуть, но я предполагаю, что нужно запустить событие или скрипт.

  With IE While .Busy Or .ReadyState <> 4: DoEvents: Wend Application.Wait (Now + TimeValue("0:00:02")) .Document.frames("mainParent").Document.forms("AgentProfileList").Document.getElementById("grdProfile_r_0").Document.getElementById("grdProfile_rc_0_2").Click End With 

Будем очень благодарны любой помощи.

Что-то вроде этого должно работать:

 Public Function CallJavascript(ie As InternetExplorer, codeToExecute As String) Dim DOC As MSHTML.HTMLDocument Dim w As Object Set DOC = ie.Document Set w = DOC.parentWindow CallJavascript = w.eval(codeToExecute) End Function 

Вы бы хотели вызвать ViewProfile … возможно, с CallJavascript("ViewProfile('ID','Last First');") , но вам может понадобиться поиграть с ним.

Дополнительную информацию см. На странице https://msdn.microsoft.com/en-us/library/12k71sw7%28v=vs.85%29.aspx .

После нескольких часов следа и ошибок и интернет-исследований я понял, что мне нужно уволить определенные события onmouse в ячейке таблицы Java.

Я документировал, что я сделал в связанном потоке в [link] dispatchEvent – VBA IE automation

  • Обнаружение скрытых ячеек в excel с использованием apache poi
  • Почему метод Apache POI OPCPackage close () не сохраняет / не записывает содержимое, чтобы открыть файл с возможностью записи?
  • Применение нескольких стилей в одной ячейке в ячейках Aspose
  • Найти ячейку в базе excel по имени столбца и строки - Java
  • Проблемы с POI, когда я добавляю больше изображений
  • Запись в файл excel - Анализ производительности
  • Хранить данные в базе данных из загруженного файла Excel
  • Программный эквивалент Apache POI для setForceFormulaRecalculation + открыт в Excel
  • Как я могу написать содержимое рабочей книги в цикле в тот же файл excel
  • «Исключение в потоке» main «java.lang.NoClassDefFoundError: org / apache / commons / collections4 / ListValuedMap» при чтении excel Apache POI selenium
  • Запись в конкретную ячейку с использованием Apache POI Excel
  • Interesting Posts

    как добавить json в файл файла Excel js

    Прокрутите книги в папке, чтобы скопировать и вставить ячейки в основную книгу

    Я хочу суммировать каждые 7 строк на листе и поместить сумму в разные столбцы и строки

    Суммируйте уникальные значения с несколькими критериями

    Excel: формула массива для возврата данных столбца, которая соответствует нескольким критериям

    Программа вытягивания цены очень медленная из-за увеличения размера файлов базы данных. Как я могу ускорить его?

    VBA – найдите текст и замените его соседним столбцом и повторите для каждой ячейки

    Как сделать xml-файл в c # для использования с .iqy, который импортирует как datatable

    Редактирование внешних данных в таблице Excel

    Как ограничить доступ к источнику в списке excel Проверка данных?

    Excel VBA: вызов абсолютной ячейки из динамической ссылки

    Как продолжить код на следующей строке в VBA

    VBA Ссылка на новый документ слияния

    VBA Skippin второй сложный Do Loop

    Я не могу получить цикл слияния листов в моем макросе?

    Давайте будем гением компьютера.