您好我正在尝试使用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;
这是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
答案 0 :(得分:0)
您的代码有几个问题,我将重点介绍应该修复它的两个问题,但它仍有待测试:
Set
您的代码中有如下定义的集合:
objCollection = ie.Document.GetElementsByTagName("addCart")
这行代码最有可能引发错误,因为objCollection
应该是一个集合,因此它应该是:
Set objCollection = ie.Document.GetElementsByTagName("addCart")
<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