Как эта кнопка кликабельна через VBS в ie? - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь автоматизировать несколько простых процессов на стороне клиента веб-службы в нашей внутренней сети. Маленькая программа должна обрабатывать несколько простых кликов, которые должен сделать каждый. Автоматизация работает, но самый первый шаг сводит меня с ума. Я не могу войти в сервис.

Вот кнопка на сайте:

<a tabindex="0" class="x-btn x-unselectable x-box-item x-btn-default-small" id="button-1083" role="button" aria-disabled="false" aria-hidden="false" style="margin: 0px; left: 2px; top: 0px; width: 145px; right: auto;" hidefocus="on" unselectable="on" data-componentid="button-1083">

<span class="x-btn-wrap x-btn-wrap-default-small " id="button-1083-btnWrap" role="presentation" style="table-layout: fixed;" data-ref="btnWrap" unselectable="on"><span class="x-btn-button x-btn-button-default-small x-btn-text    x-btn-button-center " id="button-1083-btnEl" role="presentation" data-ref="btnEl" unselectable="on"><span class="x-btn-icon-el x-btn-icon-el-default-small  " id="button-1083-btnIconEl" role="presentation" data-ref="btnIconEl" unselectable="on">

</span><span class="x-btn-inner x-btn-inner-default-small" id="button-1083-btnInnerEl" data-ref="btnInnerEl" unselectable="on">Login</span></span></span></a>

Я могу найти кнопку на сайте с

Document.getElementById("button-1083") 

но я не могу смоделировать "щелчок".

Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Если мы увидим код, то обнаружим, что это не фактический ввод с кнопки, а тег ссылки / a , который играет роль кнопки и содержит теги span .

Другое дело, что все теги содержат стиль unselectable = "on" .Что делает его недоступным для выбора.Пользователь может выбрать его, только если начать выбирать извне.

Ссылка:

невыбираемый атрибут для div (HTML4 & HTML5)

Мы видим, чтотолько один тег span содержит текст логина.Поэтому, если ваша цель состоит в том, чтобы щелкнуть по нему, вы можете попытаться щелкнуть по нему, используя его идентификатор диапазона, который равен button-1083-btnInnerEl

. Я провел тест со своей стороны с помощью приведенного ниже кода.Я использую тот же HTML из вашего исходного сообщения.

Dim IE As InternetExplorer
Dim URL As String
Dim btnGo As Object

Sub Macro_1()

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
URL = "C:\Users\Administrator\Desktop\sample.html"
IE.navigate (URL)

Do
DoEvents
Loop Until IE.readyState = 4



Set btnGo = IE.document.forms(0).all("button-1083-btnInnerEl")
btnGo.Click

End Sub

Я могу нажать Войти на веб-странице.Вы можете увидеть в выводе ниже.

enter image description here

Вы можете провести тест на вашей стороне и сообщить мне, если я неправильно пойму ваше требование.Я постараюсь исправить себя.

0 голосов
/ 21 января 2019

Если вы используете VBScript, как говорит ваш заголовок, вы можете использовать:

Document.getElementById("button-1083").Click()

, если вы используете javascript, который указан в ваших тегах:

document.getElementById("button-1083").click();

Это возможный дубликат ( Нажмите кнопку на веб-странице через VBScript? )

...