Estou tentando fazer com que meu Excel VBA navegue até uma determinada página de um site financeiro, mas não posso clicar corretamente ou selecionar uma opção suspensa em um "menu suspenso" para chegar a essa página. Eu tentei emular perguntas semelhantes vistas neste fórum, mas meu código não parece progredir até a página desejada. A página desejada é a página "Estoques", sob o título "Notícias e pesquisa", próxima ao topo da página inicial da Fidelity.com.
Aqui está o meu código:
Sub navigator()
Dim htmldoc As MSHTML.IHTMLDocument
Dim eleColTags As MSHTML.IHTMLElementCollection
Dim eleTag As MSHTML.IHTMLElement
Dim IE As InternetExplorer
Dim counter As Long
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Top = 0
.Left = 0
.Width = 1000
.Height = 1000
.Visible = True
.navigate "http://www.fidelity.com"
End With
Do While IE.Busy Or IE.readyState <> 4
DoEvents
Loop
With IE.document.all
Set htmldoc = IE.document
Set eleColTags = htmldoc.getElementsByTagName("a")
For Each eleTag In eleColTags
'If counter = 39 Then
'counter = counter
'End If
'Debug.Print counter, eleTag
If InStr(eleTag, "https://eresearch.fidelity.com/eresearch/landing.jhtml") > 0 Then
With eleColTags
.Item.Click
End With
Exit For
End If
counter = counter + 1
Next
End With
End Sub
E aqui está o HTML subjacente que é o alvo da navegação do meu código. O link de interesse é o 6º feito na lista de tags (o link começando com "eresearch ..."). Existem algumas linhas "comentadas" que usei para fins de depuração, por ex. o link de interesse é a 39ª tag "a" na coleção.
</li><li class="pnhs">
<div class="pnsh"><a class="pnshl" href="#" aria-haspopup="true" aria-expanded="false">News & Research</a></div>
<div class="pnl2">
<ul>
<li class="" tms="navLink"><a href="https://www.fidelity.com/news/overview" id="Link_1474659208719" name="Link_1474659208719" >News</a></li>
<li class="" tms="navLink"><a href="https://scs.fidelity.com/customeronly/watchlist.shtml" target="_top" >Watch List<span class="pnlock pnlogout"><span class="off-screen">Log In Required</span></span></a></li>
<li class="" tms="navLink"><a href="http://quotes.fidelity.com/ftgw/fbc/ofquotes/webxpress/get_quote" id="Link_1474659319682" name="Link_1474659319682" >Quotes</a></li>
<li class="" tms="navLink"><a href="https://scs.fidelity.com/customeronly/alerts.shtml" target="_top" >Alerts<span class="pnlock pnlogout"><span class="off-screen">Log In Required</span></span></a></li>
<li class="" tms="navLink"><a href="https://www.fidelity.com/fund-screener/research.shtml" id="Link_1474659463496" name="Link_1474659463496" >Mutual Funds</a></li>
<li class="" tms="navLink"><a href="https://eresearch.fidelity.com/eresearch/landing.jhtml" target="_top">Stocks</a></li>
<li class="" tms="navLink"><a href="https://fixedincome.fidelity.com/ftgw/fi/FILanding" target="_top" >Fixed Income, Bonds & CDs</a></li>
<li class="" tms="navLink"><a href="https://screener.fidelity.com/ftgw/etf/evaluator/goto/landing" target="_top" >ETFs</a></li>
<li class="" tms="navLink"><a href="https://researchtools.fidelity.com/ftgw/mloptions/goto/optionChain" target="_top">Options</a></li>
<li class="" tms="navLink"><a href="https://eresearch.fidelity.com/eresearch/goto/markets_sectors/landing.jhtml" target="_top" >Markets & Sectors</a></li>
<li class="" tms="navLink"><a href="https://brokerage.fidelity.com/ftgw/brkg/ipo/calendar" target="_top" >IPOs</a></li>
<li class="" tms="navLink"><a href="https://www.fidelity.com/research-annuities/overview" target="_top" >Annuities</a></li>
<li class="" tms="navLink"><a href="https://www.fidelity.com/learning-center" id="Link_1474659825988" name="Link_1474659825988" >Learning Center</a></li>
<li class="pnlogout" tms="navLink"><a href="https://www.fidelity.com/go/notebook" id="Link_1474659859175" name="Link_1474659859175" >Notebook</a></li>
<li class="pnlogin" tms="navLink"><a href="https://dpcs.fidelity.com/ftgw/dpcs/notebook/#?channel=nav" target="_top">Notebook</a></li>
</ul>
Tenho certeza de que é algo simples, mas não tive sorte em nada.
Normalmente, basta colar o URL imediatamente no meu código (e isso pode ser feito), mas isso é parte de um código maior que uso para fazer login no site primeiro. Eu tenho que manipular os botões do site internamente como um usuário logado para obter os dados que eu quero (uma vez que está disponível apenas para clientes como eu, faça login com frequência para obter informações e pesquisas).
Qualquer orientação seria apreciada.
Obrigado. Mark.