【问题标题】:automate click on a link自动点击链接
【发布时间】:2012-07-27 22:56:08
【问题描述】:

我正在尝试单击页面上的链接,它没有任何 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

但它不起作用,请帮助。

提前致谢:)

【问题讨论】:

    标签: vbscript automation browser-automation


    【解决方案1】:

    在第一种情况下,您没有指定什么不起作用,找到链接或单击它: 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 
    

    只有点击不会这样工作..

    【讨论】:

      【解决方案2】:

      我会尝试检查是否在实际的 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 中这是有效的)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-24
        • 2022-01-19
        • 2020-05-08
        • 1970-01-01
        • 2016-04-17
        • 2018-10-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多