VBA в Internet Explorer - PullRequest
       28

VBA в Internet Explorer

0 голосов
/ 26 сентября 2019

Я пытаюсь автоматизировать процесс на веб-сайте интрасети, используя VBA и Internet Explorer.

Первое, что нужно сделать, - это нажать «кнопку», которая открывается на другом экране в интрасети, но я уже пробовал много способов сделать это, но безуспешно.Можете ли вы помочь мне научиться нажимать на эту кнопку?

Я уже пробовал способ с querySelector и пытался найти стиль, указав диапазон, но у меня есть больше «кнопок» с тем же стилем, и это не работает.

Код может компилироваться обоими способами, описанными выше, но на экране IE этого не происходит ...

<span style="font-weight: normal; font-family: Arial; font-size: 9pt; 
 font style: normal; text-decoration: none;">Invoiced<img alt="" 
   src="/QvAjaxZfc/QvsViewClient.aspx?datamode=binary&amp;name=LED&amp;host=QVS%40cbrcur01apcp480&amp;slot=&amp;public=only&amp;color=%2300f010&amp;xrfkey=nEDfFknqkhWgtMq9" 
 class="icon" style="height: 10px; width: 10px;"> 
 </span>

Существует Javascript, на который также можно нажимать,код показан ниже:

<li id="Document\SH05" rel="DocumentSH05" order="1" style="display: list-item;"> <a href="javascript:;" 
style="color: rgb(255, 255, 255); background: rgb(175, 40, 63);"> 
<span style="font-weight: normal; font-family: Arial; font- size: 9pt; font-style: normal; text-decoration: none;">
Invoiced<img alt="" src="/QvAjaxZfc/QvsViewClient.aspx?datamode=binary&amp;name=LED&amp;host=QVS%40cbrcur01apcp480&amp;
slot=&amp;public=only&amp;
color=%2300f010&amp;xrfkey=nEDfFknqkhWgtMq9" class="icon" style="height: 10px; width: 10px;"></span></a></li>

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

мой текущий код:

Sub demo()

Dim IE As InternetExplorerMedium
Dim html As HTMLDocument

Set IE = New InternetExplorer
IE.Visible = True
IE.Navigate2 "Example"

Do While IE.Busy
    Application.Wait DateAdd("s", 1, Now)
Loop

'IE.document.getElementById("Document\SH08").Click
Set valores = IE.document.getElementsByTagName("li")
For Each valor In valores
    If valor.getAttribute("id") = "Document\SH05" Then
        valor.Click
    Exit For
 End If
Next valor

End Sub

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Я нашел решение.Я установил библиотеку Selenium для VBA и изменил InternetExplorer для Chrome.

Теперь я нажимаю на соответствующую ссылку с Xpatch (driver.FindElementByXPath ("XPATCH"). Click).

Работает как шарм!

Спасибо !!

0 голосов
/ 26 сентября 2019

попытка обратиться к приведенному ниже примеру может решить вашу проблему.

Sub demo()

    Dim IE As InternetExplorer
    Dim html As HTMLDocument

    Set IE = New InternetExplorerMedium
    IE.Visible = True
    IE.Navigate2 "D:\Backup20190913\tests\265.html"

    Do While IE.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop
   Dim objTag As Object
    For Each objTag In IE.document.getElementsByTagName("span")
    If InStr(objTag.outerHTML, "Invoiced") > 0 Then

        objTag.Click
        Exit For

    End If
Next
    Stop
    IE.Quit
    Set IE = Nothing

End Sub

Он может щелкнуть ваш тег span.

Вывод:

enter image description here

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