Я много лет обходил этот. Многие предложения здесь кажутся близкими, но я не могу заставить их работать.
Я могу открыть страницу, войти в систему, заполнить различные поля (все это часть процесса фильтрации)
Затем мне нужно просто нажать кнопку "Перейти", чтобы начать поиск.
Я пробовал варианты "Фокус" и "Щелчок" и т.д.
Я думаю, что проблема состоит в том, чтобы на самом деле получить правильный элемент, чтобы сосредоточиться и быть нажатым.
Код 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 не работает, потому что он говорит о своей невидимости)
(Отвечает OP в вопросе редактирования. Преобразован в ответ на wiki сообщества. См. Вопрос без ответов, но проблема разрешена в комментариях (или расширенной в чате))
OP писал:
РЕШИТЬ !!!
Я использовал "Innertext", чтобы получить его - проблема, с которой я столкнулся, когда-то найденная и попыталась щелкнуть ее, она вышла из цикла. Но он появился 3 раза, поэтому, удалив "exit for", он нашел ту, которая действительно работала.
document.GetElementsByTagName("a")
- перебрать возвращенную коллекцию и найти коллекцию с innerText = "Go"