我正在尝试开发VBA Internet Explorer自动化解决方案。我有一个链接,我想点击,检查我得到的元素<li class="expMenuItem listTypes dataTypeMaterialId" data-type="MaterialId">Substance Identifier</li>
。什么是适当的代码?感谢。
答案 0 :(得分:0)
来自你的评论:
“我只是问在这种情况下适当的方法是什么,我知道
getElementbyID
和getElementsByName
,但我不能在这种情况下使用它们。”
您似乎在询问如何选择一个元素以便为其指定一个点击处理程序,当您必须选择它时,只需要一个类名或data-
属性。
您可以使用.getElementsByClassName()
method选择具有特定类别的元素。请注意,它返回匹配元素的HTMLCollection,因此如果您只需要一个元素,则必须检查结果的.length
为1;如果您需要多个元素,则必须在循环中处理结果:
var elmts = document.getElementsByClassName("dataTypeMaterialId");
if (elmts.length === 1 )
elmts[0].addEventListener("click", function() { /* do something */ }, false);
演示:http://jsfiddle.net/zw3g69ry/1/
或者,您可以使用.querySelector()
根据CSS样式选择器选择单个元素,或.querySelectorAll()
选择与CSS样式选择器匹配的多个元素:
var elmt = document.querySelector('[data-type="MaterialId"]')
if (elmt)
elmt.addEventListener("click", function(e) {
/* do something */
alert("Element clicked - " + e.target.innerHTML);
}, false);
演示:http://jsfiddle.net/zw3g69ry/2/
我提到的所有方法都可以在document
上调用(正如我所做的那样)或调用特定容器元素,如果你只想查看那个容器。
答案 1 :(得分:0)
这是首选。不要模拟点击。以编程方式打开URL。
选项明确
Public Sub OpenUrl(ByVal argURL As String)
Const READYSTATE_COMPLETE As Integer = 4
Dim objIE As Object
设置objIE = CreateObject(&#34; InternetExplorer.Application&#34;)
用objIE .Visible = False .Silent = True .Navigate argURL Do Until .ReadyState = READYSTATE_COMPLETE 的DoEvents 环
结束objIE.Quit 设置objIE = Nothing
End Sub