如何点击IE网页上的链接?

时间:2016-01-28 07:18:01

标签: button vbscript hyperlink

我想打开一个名为' Open'在IE窗口中使用VBScript。源代码是这样的:

<a title="Devtems Life Menu" href="javascript:OpenOryx('cboClone');">Open</a>

1 个答案:

答案 0 :(得分:1)

在我开始回答这个问题之前,我只是想说我不是VBScript的专家。我的知识是基于周末的很多搞乱,并阅读文档。可能有更好的做事方式,但这对我有用。

我的建议是,如果您有权访问html,请在链接中添加属性,使其看起来像这样:

<a title="Devtems Life Menu" href="javascript:OpenOryx('cboClone');" id="openMenu">Open</a>

然后您可以在代码中轻松引用它。如果您无法访问html,那么您可能必须使用更迂回的方式来检查每个链接的内容。下面在我构建的一个小脚本中描述了实际的语法。它首先加载w3schools.com,然后单击引用选项卡。这使用ie.document.getElementById(arg)。请注意,引用导航面板将打开。之后,它会提示您单击“确定”按钮继续。然后它会加载google.com,并查看所有<a>标记。如果它包含Open,则单击它。您可以使用相同的语法,但脚本的不同详细信息除外。

' Create the ie object
set ie = createobject("internetexplorer.application")
' Navigate to wherever you want
ie.navigate("http://www.w3schools.com/")
ie.Visible = true
' Call the subroutine we define below
waitForPage(ie)

' Get link by id
' This is a one liner, and I personally think is better than the method below
' first of all you get the tag you want by id
' then you click it
ie.document.getElementById("navbtn_references").click()
' call ie.document.parentWindow.execScript("w3_open_nav('references')", "JavaScript") 
' could also be written as:
'set buttonElement = ie.document.getElementById("navbtn_references")
'buttonElement.click()

MsgBox("Click ok to continue to google.")
' Load google
ie.navigate("https://google.com/")
' And wait for it to load
waitForPage(ie)
' Click on a link by attribute (same technique can be used for name etc)
' Get all elements with tag input
set linkElements = ie.document.getElementsByTagName("a")
' Then loop through them
for each possibleElement in linkElements
    ' If it has a certain name..
  if possibleElement.innerHtml = "About" then ' You could use If possibleElement.getAttribute("name") = "foo" Then or possibleElement.getAttribute("class") = "bar"
        ' Click it!
    possibleElement.click()
  end if
next
' Subroutine to wait for internet explorer to load a page
sub waitForPage(ie)
  do
    WScript.Sleep(100)
  loop while ie.ReadyState < 4
end sub

另一种方法是,而不是实际查找并单击链接,只需运行用户通常单击链接时运行的脚本。在您的情况下,它可能意味着直接运行javascript:OpenOryx('cboClone');。以下是在VBScrpt中运行javascript代码的方法:

call ie.document.parentWindow.execScript("javascript:OpenOryx('cboClone');", "JavaScript")

我希望这些方法中至少有一种可以帮助您编写脚本。