我正在尝试自动化我在安全服务器上工作的一个网站,这个代码可以帮助我登录网页,但之后我必须从菜单栏中单击一个下拉列表,其中可用的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,当我在调试模式下运行我的代码时。
答案 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选择器:
VBA:
您可以通过.querySelector
的{{1}}方法来应用CSS选择器
.document
有关信息:
奖金跟踪:
Feast on CSS selectors来增强您的CSS忍者技能-我与此无关。今天发现了它,很有趣。
或者通过以下方法尝试测试器:CSS Selector Reference