Как задействовать кнопку типа Java в IE с VBA - PullRequest
0 голосов
/ 27 июня 2018

Подскажите, пожалуйста, как я могу инициировать .click [или альтернативу] на кнопке «Нажмите ЗДЕСЬ» на веб-сайте IE [VBA]? Я попытался назвать его по имени класса, тэгу и даже идентификатору, который не указан в источнике веб-сайтов.

<tr>
    <td class="center edl_checkbox" style="padding-left: 15px;">
        <input type="hidden" name="_orgSearchResultList[1].isSelected">
        <label class="edl_chb">
            <input type="checkbox" id="1" name="orgSearchResultList[1].isSelected" value="true" />
            <span></span>
        </label>
    </td>
    <td class="center">
        <a href="#" onclick="javascript:doSubmit('Edit-1');" title="PressHERE">
            PressHERE
        </a>
        <input type="hidden" id="Org1" value="PressHERE"/>
    </td>
    <td class="center" title="PressHERE">
        PressHERE

Конкретная строка, которая выделяется при «проверке элементов» на сайте:

<td class="center"><a href="#" onclick="javascript:doSubmit('Edit-1');" title="PressHERE">PressHERE

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Попробуйте и дайте нам знать обратную связь.

Dim IE As New InternetExplorer, Html As HTMLDocument
Set Html = IE.document  'consider adding this line in your script in order for `.querySelector()` to run successfully
Html.querySelector("a[title='PressHERE']").Click
0 голосов
/ 27 июня 2018

Селектор CSS:

Вы можете использовать CSS-селектор из: a[onclick='javascript:doSubmit('Edit-1');'].

Здесь говорится, что элемент (ы) get с тегом a имеют атрибут onclick, значение которого содержит 'javascript:doSubmit('Edit-1');'


CSS-запрос:

CSS query


VBA:

Селектор CSS для отдельного элемента применяется с помощью метода документа .querySelector. Таким образом, вам нужно иметь HTMLDocument для запроса. Либо с помощью .document экземпляра IE, при использовании IE для просмотра страницы, на которой она загружена, либо путем загрузки объекта HTMLDocument с responseText из HTTPrequest/WinHTTP.

например. После загрузки страницы:

ie.document.querySelector("a[onclick='javascript:doSubmit('Edit-1');']").Click

Здесь ie - ваш экземпляр браузера Internet Explorer.


querySelectorAll:

Я предполагаю, что это будет соответствовать одному элементу, или что первый является обязательным. Это выглядит довольно специфично. Вы можете использовать метод .querySelectorAll для возврата nodeList, если существует более одного элемента, который соответствует. Затем вы бы индексировали по позиции (от 0) до этого nodeList, например,

.document.querySelectorAll("a[onclick='javascript:doSubmit('Edit-1');']").item(1).Click

или потенциально

.document.querySelectorAll("a[onclick='javascript:doSubmit('Edit-1');']")(1).Click

Вышеприведенный 1 - это примерный индекс, который будет в позиции 2 в списке узлов на основе 0.

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