登录网络端并触发按钮

问题描述 投票:0回答:1

我有一个关于debug.print的问题虽然我激活了Window(STR + G)debug.print,但未显示。为什么要查看调试打印结果?所以..我想找出必须使用VBA代码触发的按钮。就我而言,我有3个选项搜索,新搜索,返回或登录对于登录,我找到了另一个Web侧面SubLog的解决方案Sub TestLogin()昏暗...昏暗LoginForm为MSHTML.HTMLFormElement ..代码LoginForm.submit

在特定情况下,代码几乎相同

Sub Get()Dim ... Dim HTML Button as MSHTML.IHTMLELEMENT ...代码

[Set Buttons = HTMLDoc.GetElementsByTagName(“ button”)对于HTMLButtons中的每个HTMLButton Debug.Print HTMLButton.className,HTMLButton.tagName,HTMLButton.Id,HTMLButton.innerText下一个按钮

结束子

在这种情况下,代码一直运行到Set Buttons = HTMLDoc.GetElementsByTagName(“ button”)行,然后跳转到End Sub]

这里是我的代码和带有VBA触发按钮的Web端源代码

Sub Search()
Dim IE As New SHDocVw.InternetExplorer
    Dim HTMLDoc As MSHTML.HTMLDocument

    Dim HTMLButtons As MSHTML.IHTMLElementCollection
    Dim HTMLButton As MSHTML.IHTMLElement

    Dim HTMLInput As MSHTML.IHTMLElement
    Dim HTMLElement  As Object



   Dim UserNameInput As MSHTML.HTMLInputElement
   Dim VornameInput As MSHTML.HTMLInputElement


   Set IE = New SHDocVw.InternetExplorer
   Set IE = CreateObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")


IE.Visible = True
IE.Navigate Tabelle1.Range("B1").Text




Do While IE.ReadyState <> READYSSTATE_COMPLETE And IE.Busy
Loop


 Set HTMLDoc = IE.Document




   Application.Wait (Now + TimeValue("0:00:1"))

    Set HTMLInput = HTMLDoc.getElementById("sur")
    HTMLInput.Value = "HI"


    Set HTMLInput = HTMLDoc.getElementById("given")
     HTMLInput.Value = "Low"

      Application.Wait (Now + TimeValue("0:00:1"))


     Stop

    Here I tried the Debug.Print .. But it does not work

     For Each HTMLButtons In HTMLDoc
       Debug.Print HTMLButton.className, HTMLButton.tagName, HTMLButton.ID, HTMLButton.innerText
     Next IHTMLButton

   Than I tried This code.. and it also does not work

    Set HTMLButtons = HTMLDoc.getElementsByTagName("btn")
    Set HTMLButtons = HTMLDoc.getElementsByClass("urTxtStd").Value("Suchen")
    HTMLButton.Click

End Sub

这里是来自网络端的源代码我有3个按钮

搜索新搜寻返回

Source Code for Search Button

<table id="btn" onclick="triggerDetailedSearch();" cellspacing="0"><tbody><tr style="vertical-align: bottom;"><td class="tl o"><td class="tr o"></tr><tr><td class="bl o">&nbsp;</td><td class="br o"><b class="urTxtStd">Suchen</b></td></tr></tbody></table>

<b class="urTxtStd">Suchen</b>

Source Code (New Search) 
<b class="urTxtStd">Neue Suche</b>

Source Code (Back)
<b class="urTxtStd">Zurück</b>

And for all 3 Buttons

SEARCH

<table id="btn" onclick="triggerDetailedSearch();" cellspacing="0"><tbody><tr style="vertical-align: bottom;"><td class="tl o"><td class="tr o"></tr><tr><td class="bl o">&nbsp;</td><td class="br o"><b class="urTxtStd">Suchen</b></td></tr></tbody></table>

New Search
<table id="btn" onclick="resetDetailedSearchForm();" cellspacing="0"><tbody><tr style="vertical-align: bottom;"><td class="tl lg"><td class="tr lg"></tr><tr><td class="bl lg">&nbsp;</td><td class="br lg"><b class="urTxtStd">Neue Suche</b></td></tr></tbody></table>

BACK
<table id="btn" onclick="goBack();" cellspacing="0"><tbody><tr style="vertical-align: bottom;"><td class="tl lg"><td class="tr lg"></tr><tr><td class="bl lg">&nbsp;</td><td class="br lg"><b class="urTxtStd">Zurück</b></td></tr></tbody></table>

我错过了什么?感谢任何帮助为了大家,请保持健康!皮特

internet-explorer button triggers
1个回答
0
投票

我尝试参考您的描述,并了解网页上有三个按钮,分别为SearchNew SearchBack。您要单击这些按钮。目前,您正在尝试遍历按钮并获取其属性的值。

您说下面的代码不起作用。

 For Each HTMLButtons In HTMLDoc
       Debug.Print HTMLButton.className, HTMLButton.tagName, HTMLButton.ID, HTMLButton.innerText
 Next IHTMLButton

我尝试检查您的HTML代码,发现您提到的按钮是使用Table元素而不是实际的[[HTML button元素创建的。这就是您的代码无法正常工作的原因。

因此,我建议您尝试使用下面的代码来获取其属性的值。

Dim tbl As MSHTML.HTMLTable For Each tbl In IE.document.getElementsByTagName("table") Debug.Print tbl.className, tbl.tagName, tbl.ID, tbl.innerText Next

输出:

enter image description here

另一件事,我注意到所有表都具有相同的ID属性值,即

btn

我建议您检查

onclick

中提到的功能名称,以使用VBA代码单击特定按钮。 示例代码:

With IE.document Set elems = .getElementsByTagName("table") For Each e In elems If (e.getAttribute("onclick") = "triggerDetailedSearch();") Then e.Click Exit For End If Next e End With

此外,您可以根据需要尝试修改代码。
© www.soinside.com 2019 - 2024. All rights reserved.