尝试使用VBA与DOM元素input进行交互

我的问题是试图与使用VBA的网站进行交互。

我已经处理填充input框通过简单地说ie.document.getElementById(strId).value = my_value以及当这些元素存在于一个ie.document.getElementById(strId).value = my_value体内。

但是对于我的生活,我无法得到这个工作。 我会尽我所能发布尽可能多的HTML。

HTML:

 <input title="Order Number" class="mtn-srch-text text-field req" id="orderNum" type="text" maxLength="10" data-sticky-placeholder="Order Number"> 

试图采取orderNum字段并填写它的VBA。

  objBrowser.document.getElementById("orderNum").value = "1234" 

对象每次都要求错误,所以我认为它不在正确的位置,因为元素肯定存在,但是我错误地指向它。 由于在此页面的HTML中没有看到任何表单标签,因此我不知道如何继续深入查看以填充此input框。 任何build议将是真棒!

添加一些更多的代码,不得不删除一些URLS和用户名/密码,但是你可以看到,导航很简单,直到我们到达它的iFrames部分。 我现在看到每个iFrame有一个不同的SRC,这可能是为什么

  .contentDocument.getelementbyId("textbox").value = "test" 

不会工作。 我们所关注的是虚线以下的所有东西,正如你所看到的那样,我只是在四处尝试不同的东西。

  Dim strPosUrl As String, strUsername As String, strPassword As String, _ strStoreDomId As String, strStore As String, _ strBtnStoreUpdateDomId As String, strOrder As String, _ strLoadingSpinner As String, strCssAttributeSpinner As String, _ strCssTextSpinner As String Dim objBrowser As Object 'SHDocVw.InternetExplorer Dim blnSsoLogin As Boolean Dim intStoreColNum As Integer, intOrderColNum As Integer, _ intCreditCardColNum As Integer 'Dim doc As MSHTML.HTMLDocument 'these are test vars----------------- strStore = "Data" strOrder = "Data" '---------------------------------- strLoadingSpinner = "spinnerUnique" strCssAttributeSpinner = "style" strCssTextSpinner = "display: none;" strUsername = "example" strPassword = "EXample" strStoreDomId = "orderLocInputId" strBtnStoreUpdateDomId = "orderLocValueUpdate" strPosUrl = "https://example.jsp" Set objBrowser = New InternetExplorerMedium objBrowser.Visible = True browserNavigate strPosUrl, objBrowser browserWait objBrowser blnSsoLogin = ssoLoginCheck(objBrowser) Select Case blnSsoLogin Case Is = True ssoLoginMod strUsername, strPassword, objBrowser browserWait objBrowser Case Is = False End Select fillTextboxWithId objBrowser, strStoreDomId, strStore clickButtonWithId objBrowser, strBtnStoreUpdateDomId browserWait objBrowser foundOrNot strLoadingSpinner, strCssAttributeSpinner, _ strCssTextSpinner, objBrowser '----------------------------------------------------- Dim IFrameText As Object Set IFrameText = objBrowser.document.getElementById("frmHome") IFrameText.HTML.getElementById("ordernum").Value = "1223" Dim x As String objBrowser.navigate "https://sposstore.vzwcorp.com" & x x = objBrowser.LocationURL x = "just messing with stuff" Set IFrameText = objBrowser.document.getElementById("frmHome") Dim elem As Object For Each elem In IFrameText If elem.innerText Like "*true*" Then MsgBox (elem) End If Next