1

ページ上のリンクをクリックしようとしていますが、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

しかし、それは機能していません、助けてください。

前もって感謝します :)

4

2 に答える 2

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 

クリックだけはこのようには機能しません。

于 2012-07-30T11:00:34.430 に答える
0

次のように、closePupupが実際のJavaScriptに含まれているかどうかを確認しようとします。

'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ではこれが機能します)

于 2012-07-30T10:06:14.263 に答える