无法使用VBA单击网站上的按钮

时间:2015-03-26 11:20:49

标签: vba

您好我正在尝试使用vba点击网站上的按钮。 这是html标记行。我尝试使用 getelementsbytagname(" inputAdd")来调用它,但它会抛出错误。 这是html标签:



<div class="configurableStyle" id="configurabled12">
  <h1>Add To Cart</h1>
  <div class="inner-section">
    <p>The product you are adding to the Cart may require Configuration.
      <br>The Prices do not reflect valid Prices
    </p>
    <input class="marginR10" onclick='configureNonUCS("WS-C2960S-48FPS-L", 6595, $(".configurableQty12").val(), 0, "Catalyst 2960S 48 GigE PoE 740W, 4 x SFP LAN Base");' type="button" value="Configure"><a class="addCart" onclick='addNonUCSToCart(null, "WS-C2960S-48FPS-L", 6595.00,$(".configurableQty12").val(), 0, "Catalyst 2960S 48 GigE PoE 740W, 4 x SFP LAN Base","N","Y","1","Y","null")' href="javascript://">
    Add to Cart and Configure later</a>
  </div>
</div>
&#13;
&#13;
&#13;

这是VBA代码:

intStart = InStr(1, strSubHTML, "WS-C2960S-24TD-L", vbTextCompare) + 1 
intStart = InStr(intStart, strSubHTML, "WS-C2960S-24TD-L", vbTextCompare)
objCollection = ie.Document.GetElementsByTagName("addCart") 
Set form = ie.Document.Body.GetElementsByTagName("configurableQty12")(0) 
Set Button = ie.Document.GetElementsByTagName("button")(0) 
Button.Click

1 个答案:

答案 0 :(得分:0)

您的代码有几个问题,我将重点介绍应该修复它的两个问题,但它仍有待测试:

必须通过关键字Set

设置VBA中的对象

您的代码中有如下定义的集合:

objCollection = ie.Document.GetElementsByTagName("addCart")

这行代码最有可能引发错误,因为objCollection应该是一个集合,因此它应该是:

Set objCollection = ie.Document.GetElementsByTagName("addCart")

您提供给我们的HTML中没有标记<button>

您尝试将按钮定义为HTML文档中<button>个对象集合的第一个元素:

Set Button = ie.Document.GetElementsByTagName("button")(0) 

但是,据我所知,您提供给我们的HTML代码段中没有标记<button>的元素。也许,您已经看到type对象的<input>属性为button,您会感到困惑。 要正确设置按钮,您应该使用:

Set Button = ie.Document.getElementsByTagName("input")(0)

但请注意,上面假设按钮是页面的第一个输入元素,我怀疑该页面是否包含登录表单或搜索引擎。因此,您可能要做的是循环输入并单击具有值 Configure 的那个:

Set AllButtons = ie.Document.getElementsByTagName("input")
For Each button In AllButtons
    If button.value = "Configure" Then
        button.Click
        Exit For
    End If
Next button