如何在“ href”元素中使用不同的参数查找和执行JavaScript函数?

时间:2019-08-31 18:37:02

标签: javascript html vba automation

我正在为特定网站自动化表单填写过程。我成功选择了所有正确的表格和下拉列表。但是,我无法选择许多超链接文本之一,因为它包含具有不同参数(即不同的数字,单词和字母)的JavaScript函数。每个超链接文本都具有相同的类,唯一不同的元素是“ href”。如果其中包含特定文本,我将如何查找并执行JavaScript函数?

如果我将带有不同参数的整个函数输入到代码中,则可以选择文本。但是,我已经研究了几种方法,例如execScript和querySelector:如果仅以execScript“ AccountLogin()”的形式输入函数,则注意会有所变化。如果我使用querySelector()搜索,但在HTML代码中找不到标签名称和元素,则不会得到结果。

这是HTML的大致外观。类名始终相同,但是JavaScript函数的参数因类而异。

<a class = "accntLink" href="javascript:AccountLogin(###,####,false,###...)" </a>

下面是我尝试使用两种方法执行该功能的代码。

Sub Select_Item()

Dim ie As Object: Set ie = CreateObject("InternetExplorer.Application")

    With ie
        .Visible = True
        .Navigate MyURL

        While ie.ReadyState <> 4 Or ie.Busy: DoEvents: Wend

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

        UserName = ThisWorkbook.Sheets("Sheet1").Range("A1")
        Set inputs = ie.Document.getElementsByTagName("a")
        For Each inpt In inputs
        If inpt.className = "accntLink" Then Call ie.Document.querySelector("[href*=" + UserName + "]").Click
        Next


        Set linkList = .querySelectorAll("a.helpLink[href]")
        For i = 0 To linkList.Length - 1
            Debug.Print Replace$(linkList.Item(i), "about:", MyURL)
        Next i
        End With

    End With

End Sub

我希望输出会导致程序执行该功能,但是什么也没有返回。如果更改querySelector,有时会出现“自动化错误”。

0 个答案:

没有答案