Нажатие кнопки в Internet Explorer - PullRequest
       37

Нажатие кнопки в Internet Explorer

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

У меня есть форма, которую я хотел бы открыть в окне IE, перейти на определенную веб-страницу, ввести некоторые данные, нажать кнопку отправки и сохранить результаты.

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

Сайт, к которому я обращаюсь, http://trulos.com/mileage/

проверять код из Chrome длякнопка

Рассчитать пробег

Я могу ввести адрес отправителя и адрес получателя, но просто не могу понять, как нажать кнопку «Рассчитать пробег».

Пример кода Яработа с

Dim frominput As String
Dim toinput As String
frominput = "Stockton, CA"
toinput = "Lubbock, TX"
Dim ele As Object


Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.navigate "http://trulos.com/mileage/"
IE.Visible = True

While IE.busy
    DoEvents
Wend
Pause (2)






IE.Document.all("from").Value = frominput
IE.Document.all("to").Value = toinput
'IE.Document.Forms(0).submit
'IE.Document.all("button:Calculate Mileage").Click
'IE.Document.all("btnG").Click


'IE.Document.getElementsByTagName("button")(0).Click
'Set ele = IE.Document.getElementsByClassName("Panel-Body")(0)
'MsgBox ele.classname



'<button type="button" onclick="get_addresses();" class="btn btn-default"> Calculate Mileage</button>
'MsgBox IE.Document.body.innertext
'MsgBox IE.Document.getElementsByClassName("btn btn-default")


'Set the_input_elements = IE.Document.getelementsbytagname("input")
'For Each input_element In the_input_elements
'If input_element.getattribute("class") = "btn btn-default" Then
'    input_element.Click
'    Exit For
'End If
'Next input_element



'Set tags = IE.Document.getElementsByTagName("button")
Set tags = IE.Document.getElementsByClassName("btn btn-default")
For Each tagx In tags
    If tagx.innertext = "submit" Then
        tagx.Click
        Exit For
    End If
MsgBox tagx.innertext
Next

1 Ответ

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

Селекторы CSS:

Я бы использовал селектор CSS, чтобы указать атрибут onclick кнопки через его значение.[] является селектором атрибута .Я использую комбинацию синтаксиса [attr=value].Итак, я ищу элемент с атрибутом onclick, значение которого 'get_addresses();'.Вы применяете его с помощью метода querySelector, так как первый соответствующий элемент является единственным обязательным (и присутствует!).Значение атрибута является уникальным на странице, и это метод выбора fast , особенно в более поздних версиях IE.

ie.document.querySelector("[onclick='get_addresses();']").Click

HTML кнопки - целевой атрибут:

Если вы просматриваете кнопку HTML, вы можете просмотреть целевой атрибут:

enter image description here

CSS-запрос:

enter image description here


Другие варианты (их гораздо больше):

ie.document.querySelector("#form_addresses button").Click
ie.document.querySelectorAll("[type=button]")(6).Click
ie.document.getElementsByTagName("form")(2).getElementsByTagName("button")(0).Click

Второй итретьи целевые коллекции элементов.Вторая возвращает nodeList, тогда как третья возвращает DispHTMLElementCollection.Первый возвращает один элемент.

...