自动点击链接

时间:2012-07-30 09:29:52

标签: vbscript automation browser-automation

我正在尝试点击页面上的链接,它没有任何ID,也没有唯一的类名。关于该函数的唯一事情是onclick处理程序

<a href="#" onclick="closepopup('popup', 'popuphandler')" > </a>

我需要通过vbscript自动化点击此链接,因为我尝试了代码:

Set allLinks = ie.document.links
for j = 0 to allLinks.length-1
    if allLinks(j).onClick = "closePopup(""popup"",""popupClose"")" then
        allLinks(j).click
        j = allLinks.length 'class name = blueButtonCenter
    end if
Next

但它不起作用,请帮助。

提前致谢:)

2 个答案:

答案 0 :(得分:2)

在第一种情况下,你没有指定不起作用的东西,找到链接或点击它: onClick将返回类似

的内容
about:blank# function onclick()
{
closepopup('popup', 'popuphandler')
}

所以你应该使用instr检查它是否是正确的链接

Dim HTMLDoc, XML, URL, table
Set HTMLDoc = CreateObject("HTMLFile")
Set XML = CreateObject("MSXML2.XMLHTTP")

URL = "your url"

With XML
  .Open "GET", URL, False
  .Send
  HTMLDoc.Write .responseText
End With

Set allLinks = HTMLDoc.links 
For each link in allLinks
  if instr(link.onClick, "closepopup('popup', 'popuphandler')") then
    link.click
    exit for
  end if
Next 

只有点击不会这样..

答案 1 :(得分:0)

我会尝试检查是否在实际的javascript中找到了closePupup,如下所示:

'safety first
if not isnull(allLinks(j).onClick) then
  if instr(allLinks(j).onClick.toString() ,  "closePopup(""popup"",""popupClose"")" ) > -1 then 
        allLinks(j).click 
        j = allLinks.length 'class name = blueButtonCenter 
  end if 
end if

这假设onClick提供了一个字符串,(至少在javascript中确实如此,在IE9和Chrome中都有效)