VBA:如何在HREF和CLASS HTML标签的帮助下单击网页中的下拉菜单

时间:2017-11-15 13:45:00

标签: html excel vba excel-vba

我正在尝试自动化我在安全服务器上工作的一个网站,这个代码可以帮助我登录网页,但之后我必须从菜单栏中单击一个下拉列表,其中可用的HTML标记是CLASS和仅限HREF。

HTML

<li>  
<a Class = "childmenu" href="./1713363899/ViewLogsPage">  
<span>Logs</Span>  
</a>  
</li>

我的VBA代码的一部分是

Dim MyHTML_Element as IHTMLElement 
Set HTMLDoc = MyBrowser.document


For Each MyHTML_Element In HTMLDoc.getElementsByClassName ("childmenu") 
If MyHTML_Element.href = "./1713363899/ViewLogsPage" Then MyHTML_Element.Click:  
Exit For  
Next  

但是这段代码不能正常工作,并在执行此行后跳过“..... ClassName(”childmenu“)”并跳转到END sub,当我在调试模式下运行我的代码时。

enter image description here

2 个答案:

答案 0 :(得分:1)

尝试

If Instr(MyHTML_Element.href, "1713363899/ViewLogsPage") Then MyHTML_Element.Click

如果不起作用,请在使用If之前添加debug.print MyHTML_Element.href。在下载页面时可能会生成链接。

答案 1 :(得分:0)

使用.childmenu[href='./1713363899/ViewLogsPage']的CSS选择器。读取为类名childmenu的元素,其属性href的值为'./1713363899/ViewLogsPage'


正在使用CSS选择器:

css query


VBA:

您可以通过.querySelector的{​​{1}}方法来应用CSS选择器

.document

有关信息:

  1. CSS selectors
  2. .querySelector method

奖金跟踪:

Feast on CSS selectors来增强您的CSS忍者技能-我与此无关。今天发现了它,很有趣。

或者通过以下方法尝试测试器:CSS Selector Reference