我正在尝试设置一个VBA模块,该模块将自动登录到网站,导航到特定页面,并从Excel输入数据以检查数据是否允许。我已经到了最后一页,我将从Excel中插入数据,但实际上在更改网页上文本框的值时遇到了麻烦。我怀疑这是由单元格的JavaScript引起的问题。
<input type="text" onkeypress="getNMContext().handleTextBoxOnKeyPress(event);" onblur="handleTextBoxOnBlur(this, '',event);" onfocus="handleTextBoxOnFocus(this, '');" onchange="getNMContext().handleTextBoxOnChange(event);" style="width: 200px; color: rgb(0, 0, 0);" name="DISPLAY_SearchParameters_MemberID" id="DISPLAY_SearchParameters_MemberID_ID" maxlength="8" title="">
以上是我需要修改的一个字段的示例。使用
IE.document.getElementById("DISPLAY_SearchParameters_MemberID_ID").value = "text"
不更新字段,而是返回错误424,通知我需要一个对象(因此甚至没有检测到ID的框)。
即使给出ID,VBA也无法检测到文本字段的原因是什么?
我会张贴该框的图片,但我没有必要的声誉(我是新用户)。
谢谢!
答案 0 :(得分:0)
如果此文本框首先存储在iFrame中,您需要获取对此iFrame的引用,然后使用其ContentWindow
属性:
Dim frame As Object
Dim textBox As Object
Set frame = IE.Document.getElementById("frame_id")
Set textBox = frame.contentWindow.Document.getElementById("DISPLAY_SearchParameters_MemberID_ID")
textBox.value = "text"