Из VBA (Excel), как я могу нажать эту кнопку на странице HTML / Javascript?

0

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

Я могу открыть страницу, войти в систему, заполнить различные поля (все это часть процесса фильтрации)

Затем мне нужно просто нажать кнопку "Перейти", чтобы начать поиск.

Я пробовал варианты "Фокус" и "Щелчок" и т.д.

Я думаю, что проблема состоит в том, чтобы на самом деле получить правильный элемент, чтобы сосредоточиться и быть нажатым.

Код HTML для кнопки, которая должна быть нажата, - это

<td class="XUIPromptEntry"><span class="minibuttonOn"><a href="javascript:void(null)" onclick="javascript:GFPDoFilters('d:dashboard~p:nsv29jv8c3s9l61e~s:o426k5n3d5ajovme~g:49ftldfknmmr1fg5',document.getElementById('saw_6428_5'),true);return false;">Go</a></span><div id="d:dashboard~p:nsv29jv8c3s9l61e~s:o426k5n3d5ajovme~g:49ftldfknmmr1fg5Scope" value="page"/></td>

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

Пожалуйста помоги! Я должен войти в каждую субботу и воскресенье, чтобы запустить этот отчет через Excel, и я хочу, чтобы мои выходные снова!

Как указано ниже, здесь код, который я пробовал до сих пор (который работал в других макросах)

                Set htmlDoc = .document
            Set htmlColl = htmlDoc.getElementsByTagName("input")
            Do While htmlDoc.READYSTATE <> "complete": DoEvents: Loop
                For Each htmlInput In htmlColl
                    If Trim(htmlInput.Type) = "submit" Then
                        htmlInput.Click
                        Exit For
                    End If
                Next htmlInput
            End With

Я также пробовал несколько других подходов, включая...

    Set link = Nothing
i = 0
While i < htmlDoc.Links.Length And link Is Nothing
    If htmlDoc.Links(i).innerText = "Go" Then Set link = htmlDoc.Links(i)
    i = i + 1
Wend
If Not link Is Nothing Then
    link.Focus
    link.Click
End If

Но до сих пор нет радости (Link.focus не работает, потому что он говорит о своей невидимости)

  • 0
    Можете ли вы опубликовать код, который вы используете, чтобы найти элемент? Может быть, немного больше для контекста? Трудно сказать, что вам нужно изменить, если неясно, что вы уже делаете.
  • 0
    Вызовите document.GetElementsByTagName("a") - перебрать возвращенную коллекцию и найти коллекцию с innerText = "Go"
Теги:

1 ответ

0

(Отвечает OP в вопросе редактирования. Преобразован в ответ на wiki сообщества. См. Вопрос без ответов, но проблема разрешена в комментариях (или расширенной в чате))

OP писал:

РЕШИТЬ !!!

Я использовал "Innertext", чтобы получить его - проблема, с которой я столкнулся, когда-то найденная и попыталась щелкнуть ее, она вышла из цикла. Но он появился 3 раза, поэтому, удалив "exit for", он нашел ту, которая действительно работала.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню