автоматизировать переход по ссылке

Я пытаюсь щелкнуть ссылку на странице, у нее нет идентификатора и уникального имени класса. Единственная уникальная вещь в этой функции — это обработчик 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

Но не работает, помогите.

Заранее спасибо :)


person codeomnitrix    schedule 30.07.2012    source источник


Ответы (2)


Я бы попытался проверить, найден ли 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 это работает)

person rene    schedule 30.07.2012

Вы не указали, что не работает, найти ссылку или щелкнуть по ней, в первом случае: 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 

Только щелчок так не сработает..

person peter    schedule 30.07.2012