使用VBA与Iframe交互

时间:2018-03-13 14:02:59

标签: html vba iframe

我需要访问此website,单击“Entrar”,然后与弹出窗口(即iframe)进行交互。

而且,使用iframe的网址不是一种选择。

我的代码:

Dim ie As SHDocVw.InternetExplorer
Dim doc As MSHTML.HTMLDocument
Dim url As String

url = "https://agenciavirtual.light.com.br/AGV/"
Set ie = New SHDocVw.InternetExplorer
ie.Visible = True
ie.Navigate url

While ie.Busy Or ie.readyState <> READYSTATE_COMPLETE
    DoEvents
Wend

Set doc = ie.Document

Dim iframeDoc As MSHTML.HTMLDocument
Set iframeDoc = doc.Frames(0).Document
If iframeDoc Is Nothing Then
    MsgBox "IFrame was not found."
    ie.Quit
    Exit Sub
End If

iframeDoc.getElementsByTagName("input")(0).innertext = "123"
iframeDoc.getElementsByTagName("input")(1).innertext = "1234567890"
iframeDoc.getElementsByTagName("button")(0).Click

ie.Quit

以下行生成错误“Acess is denied”

iframeDoc = doc.Frames(0).Document

我尝试了其他方式,如

'Generates the error "Automation Error"
IE.Document.getElementsbyTagName("iframe")(0).contentDocument.getElementsbyTagName("input")(0).innerText = "123"

'Generates the error "Method 'frames' of object 'JScriptTypeInfo' failed"
IE.Document.Frames(0).Document.forms(0).innerText
  

主页HTML

<html>

<head>...</head>

<body>
<iframe class="suaIframe" src="https://suav2.light.com.br/Home/Login?DominioCanal=https://agenciavirtual.light.com.br/AGV&amp;PlataformaVersao=Z52&amp;ReturnUrl=/AGV/Autenticacao/LoginSUA&amp;Servico=8&amp;fullScreen=false"></iframe>
</body>

</html>
  

iframe HTML

<html>

<head>...</head>

<body>
...

<input class="itemForm" id="CPFCNPJ" maxlength="3" name="CPFCNPJ" onkeypress="return onlyNumbers(this, event);" placeholder="Preencha somente com os 3 primeiros dígitos" type="tel" value="">

<input class="itemForm" id="PN" maxlength="10" name="PN" onkeypress="return onlyNumbers(this, event);" placeholder="Informe o código do cliente" type="tel" value="">

<button type="button" name="btnEntrar" id="btnEntrar" class="btn btn-primary btn-entrar" value="entrar">Entrar</button>

...
</body>

</html>

0 个答案:

没有答案