【发布时间】:2020-02-14 23:39:26
【问题描述】:
只需要更好地了解在 VBA 中使用 Internet Explorer 对象。 所以我想点击下面的按钮,代码如下
<a id="DLG_VARIABLE_dlgBase_BTNOK" ct="B" st="" href="javascript:void(0);" class="urBtnEmph" ocl="sapbi_page.sendCommandArray([['TARGET_DIALOG_REF','DLG_VARIABLE',0],['BI_COMMAND_TYPE','OK',0]],event);" onkeydown="ur_Button_keypress(event);" onclick="ur_Button_click(event);" style="text-align:center;overflow:visible;">OK</a>
我的代码如下 -
Dim IE As InternetExplorer 'Reference to Microsoft Internet Controls
Set IE = New InternetExplorer
With IE
.Visible = True
.Navigate2 "Somewebsite"
.Document.getelemetbyclass("urBtnEmph").Click
End With
End Sub
但是当我尝试运行它时,它说
'对象不支持此属性或方法'。
我对这个 Internet Explorer 对象和 javascript 非常陌生 :(
编辑: 我已将行更改为 ' .Document.getelementsbyclass("urBtnEmph").Click' 但仍然有相同的警告。
然后我尝试了这个'.Document.getElementById("DLG_VARIABLE_dlgBase_BTNOK").Click',它显示'对象变量或未设置块变量'。我已经附上了这个按钮的 html 代码
【问题讨论】:
-
嗨,brax,我已更改为 .Document.getElementsByClass("urBtnEmph").Click 但仍然显示相同的问题。我是不是选错了类名?
-
它是 getElementsByClassName 但因为它有一个 id 你应该定位它。您无需等待页面加载,因此您将在元素渲染之前寻找它。如果你解决了这个问题,那么
.Document.getElementById("DLG_VARIABLE_dlgBase_BTNOK").Click应该可以工作。 -
在屏幕截图上,您要访问的文档看起来位于 iFrame 中。但是您只会看到结束的 iFrame 标记。尽可能多地显示开头部分也可见的 HTML 代码。最好不要作为截图,而是作为代码sn-p
标签: excel vba internet-explorer web-scraping