如何单击仅显示的网页上的元素

时间:2014-08-21 02:51:26

标签: javascript vba internet-explorer automation

我正在尝试开发VBA Internet Explorer自动化解决方案。我有一个链接,我想点击,检查我得到的元素<li class="expMenuItem listTypes dataTypeMaterialId" data-type="MaterialId">Substance Identifier</li>。什么是适当的代码?感谢。

2 个答案:

答案 0 :(得分:0)

来自你的评论:

  

“我只是问在这种情况下适当的方法是什么,我知道getElementbyIDgetElementsByName,但我不能在这种情况下使用它们。”

您似乎在询问如何选择一个元素以便为其指定一个点击处理程序,当您必须选择它时,只需要一个类名或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