【发布时间】:2015-11-24 00:21:11
【问题描述】:
我在尝试通过 VBA 在 PHP 网站上单击按钮时遇到运行时错误 '438'(对象不支持此属性或方法'),过去几个小时我一直在谷歌搜索并且找不到解决方法。
下面的这段代码做了我需要的一切,但是找不到如何点击按钮而不失败,尝试了以下:
IE.Document.getElementsByName("Calculate").Click
IE.Document.getElementsByID
IE.Document.getElementsByClassName
等都失败了。
我看到的按钮代码如下:
<button onclick="calculate();" class="btn btn-primary">Calculate</button>
因此,当使用 ByClassName 时,我使用了 btn btn-primary,而按名称,我使用了 Calculate。我现在疯了,大声笑,有什么想法吗?代码如下:
如果这很重要,请使用 IE11。
Sub testWeb()
Dim sht As Worksheet
Dim IE As Object
Dim Item As Variant
Dim objElement As Object
Set sht = ActiveSheet
Set IE = CreateObject("InternetExplorer.Application")
'Open IE
IE.Visible = True
IE.Navigate "http://www.doogal.co.uk/DrivingDistances.php"
'Wait until site is loaded
Do While IE.ReadyState <> 4 'READYSTATE_COMPLETE
DoEvents
Loop
IE.Document.getElementById("startLocs").Value = "TEST"
IE.Document.getElementById("endLocs").Value = "TEST1"
IE.Document.getElementsByName("Calculate").Click
IE.Document.forms(1).submit
End Sub
【问题讨论】:
-
您在网站上使用 VBS 是否有特定原因?因为如果不是,请不要.. 使用 javascript。 VBS 就像是没人喜欢的 JS 的邪恶小弟弟。
-
这是一个知识差距 tbh 朋友 :),我需要 Excel 中的信息,所以我使用我所知道的信息来输入这些数据。
-
不确定 Rob 是如何认为这是 VBS 的……您可能认为对 VBA 的多次引用会区分这一点。也许 VBA 和 VBS 对于 JS 人来说是可以互换的术语。 :) 无论如何,我 +1 以抵消 -1 以防万一它来自没有阅读的人。