Javascript 如何在网页上找到按钮

Javascript 如何在网页上找到按钮,javascript,html,excel,vba,Javascript,Html,Excel,Vba,我试图在网页上执行多个操作,以帮助用户设置他们的首选项。我使用Excel VBA,因为这是公司自动化任务的唯一方法 首先,他们必须登录,这是我能够执行的操作。然后,我浏览到适当的页面 问题发生在这里:使用Internet Explorer,如果我右键单击页面并显示源代码,则只显示页面的一部分。此外,根据我执行此操作的区域,源代码是不同的,它不是一个单独的部分。 如果我使用DOM资源管理器,情况就不同了。将显示完整的页面代码,我可以指向要单击的按钮 按钮代码: <a href="j

我试图在网页上执行多个操作,以帮助用户设置他们的首选项。我使用Excel VBA,因为这是公司自动化任务的唯一方法

首先,他们必须登录,这是我能够执行的操作。然后,我浏览到适当的页面

问题发生在这里:使用Internet Explorer,如果我右键单击页面并显示源代码,则只显示页面的一部分。此外,根据我执行此操作的区域,源代码是不同的,它不是一个单独的部分。
如果我使用DOM资源管理器,情况就不同了。将显示完整的页面代码,我可以指向要单击的按钮

按钮代码:

<a href="javascript:somewords('somelink',var1,var2,false)">Click here !</a>
我的代码循环了三次(所以我知道它会检测标记),但没有一个符合我的条件。因此,它脱离了循环,什么也没有发生。
我试图查看检测到的标签,似乎只有页面的顶部功能区被识别/加载。

即使使用InnerText函数,这些方法也不起作用。

对于提供最少的html代码,也必须这样做

您可以使用
innerHTML
将元素上的字符串值与标记名
a
进行比较

Sub ieBusy(ie As InternetExplorerMedium)

    Do While ie.Busy Or ie.readyState < 4
        DoEvents
    Loop

End Sub

Sub Connect_to_system()

    Dim ie As New InternetExplorerMedium, aElemColl As Object, aElem As Object

    With ie

        .Visible = True
        .navigate "http://example.com/login?username=johndoe&password=123"
        ieBusy ie
        .navigate "http://example.com/somepage.jsp?reference123"
        ieBusy ie
        Set aElemColl = .document.getElementsByTagName("a")

    End With

    For Each aElem In aElemColl

        If aElem.innerHTML Like "*javascript:somewords('somelink',var1,var2,false)*" Then
            aElem.Click
            Exit For
        End If

    Next

End Sub
子ieBusy(即作为InternetExplorerMedia)
在ie忙或ie readyState<4时执行
多芬特
环
端接头
将_子连接到_系统()
Dim ie作为新的InternetExplorerMedia,aElemColl作为对象,aElem作为对象
与ie
.Visible=True
.导航“http://example.com/login?username=johndoe&password=123"
我很忙
.导航“http://example.com/somepage.jsp?reference123"
我很忙
Set aElemColl=.document.getElementsByTagName(“a”)
以
对于aElemColl中的每个aElem
如果aElem.innerHTML像“*javascript:somewords('somelink',var1,var2,false)*”,那么
埃勒姆,点击
退出
如果结束
下一个
端接头

使用
InternetExplorerMedium
vs
InternetExplorer
的原因是什么?与其单击按钮,不如尝试导航到javascript函数本身(绕过按钮)。在
应用程序之后。等待
不要循环遍历标记或任何东西,只需尝试使用
直接调用javascript。Navigate=“javascript:somewords('somelink',var1,var2,false)”
通过在url中编码凭据登录是不安全的做法ᴀᴠɪs:使用InternetExplorerMedium没有特别的原因,但其他解决方案不起作用。是的,我知道这是不安全的,一旦程序的其余部分正常工作,我会要求用户在userform中输入他们的信用。但今天的测试速度要快得多。对Soulfire来说:它也不起作用,什么都没有发生,没有出现错误一件有趣的事情:如果我在IE中的开发者工具控制台中输入
javascript:somewords('somelink',var1,var2,false)
,它就会加载。也许是一条新的探索之路。。。对于下面的代码,它可以工作,但是javascript定义总是会更改,所以它只能工作一次<代码>调用ie.document.parentWindow.execScript(javascript:somewords['ac‌​常春藤‌​ng']JavaScript将很难使用。如果可以使用,请发回,以便我们知道最终结果。它不起作用。它循环了3次,但什么也没有发生。它似乎再次检测到顶部功能区上的标记,但页面其余部分上没有。