Нажмите кнопку HTML, которая имеет идентификатор и Onclick через VBA - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь нажать на кнопку после ввода данных в это поле:

<input name="termoBuscaUsuarioAprovador" id="termoBuscaUsuarioAprovador" 
style="width: 240px;" onkeydown="javascript:var keyCode = event.keyCode ? 
event.keyCode : event.which ? event.which : event.charCode; if(keyCode == 13) { 
document.getElementById('buscaResponsavel').focus(); }" onkeypress="return 
desabilita(this, event);javascript:var keyCode = event.keyCode ? event.keyCode 
: event.which ? event.which : event.charCode; if(keyCode == 13) { document.getElementById('buscaResponsavel').focus(); }" type="text" value="">

Я использую это, и, кажется, работает:

IE.Document.getElementById("termoBuscaUsuarioAprovador").Value = "xxxxxxx" 'Name

Но когдаЯ пытаюсь нажать на кнопку «Поиск» ниже, появляется короткая полоса загрузки (точно, как если бы я нажимал кнопку вручную), но она ничего не показывает, она все еще остается пустой.

<input name="buscaUsuarioAprovador" id="buscaResponsavel" style="width: 100px;" onclick="pesquisar_dadosUsuarioAprovador(document.getElementById('termoBuscaUsuarioAprovador').value)" type="button" value="Buscar">

Код, который я использую для отображения панели загрузки:

IE.Document.getElementById("buscaResponsavel").Click

Я не знаю, частично ли я нажимаю кнопку из-за этого "щелчка мышью" или что-тоделать с полем ввода.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Вы пытались. FireEvent, чтобы вызвать onclick?

IE.Document.getElementById("buscaResponsavel").FireEvent "onclick"

Возможно последовательность:

IE.Document.getElementById("buscaResponsavel").FireEvent "onkeypress"
'Set value however you are.....
IE.Document.getElementById("buscaResponsavel").FireEvent "onclick"
0 голосов
/ 23 ноября 2018

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

  set Zip =  IE.Document.getElementById("termoBuscaUsuarioAprovador")
  Zip.Value = "XXXXX"   
  Dim event_onChange As Object
  Set event_onChange = ie_Doc.createEvent("HTMLEvents")
  event_onChange.initEvent "keypress", True, False
  Zip.dispatchEvent event_onChange

вы можете заменить «Keypress» на «keydown», если он не работает

Метод 2:

   set Zip =  IE.Document.getElementById("termoBuscaUsuarioAprovador")
  Zip.Value = "XXXXX"
  Zip.FireEvent ("onkeypress")
or
  Zip.FireEvent ("onblur")

Надеюсь, это поможет

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