我正在尝试使用 PowerPoint VBA 访问使用 Wix Site Builder 制作的网页上的 iframe 元素。
我尝试了在谷歌和其他网页上找到的所有内容,但我无法弄清楚。当我尝试使用时,最常见的错误是“自动化错误”contentDocument
当我尝试使用时,“访问被拒绝”contentWindow
.
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.Visible = True
objIE.navigate "https://pptgamespt.wixsite.com/mppp/tests2"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
Pausecode (2)
objIE.document.getElementsByTagName("iframe")(0).contentDocument.getElementById("input").Value = "some value"
我正在尝试使用 iframe 内的 id“input”更改输入的值,该 iframe 没有类或 id。上面的代码是我尝试的最后一个抛出错误“自动化错误”的代码。
我认为您会遇到 IE 的同源策略问题。您可以获取 iframe 的 src 并导航到该位置
Option Explicit
Public Sub SendInfo()
Dim ie As New InternetExplorer
With ie
.Visible = True
.Navigate2 "https://pptgamespt.wixsite.com/mppp/tests2"
While .Busy Or .readyState < 4: DoEvents: Wend
.Navigate2 ie.document.querySelector("iframe").src
While .Busy Or .readyState < 4: DoEvents: Wend
.document.querySelector("#input").Value = "Bob"
.document.querySelector("#send").Click
While .Busy Or .readyState < 4: DoEvents: Wend
Stop
.Quit
End With
End Sub
使用 selenium basic 和 chrome 来解决同源策略问题。安装 selenium basic 后,必须添加对 selenium 类型库的引用 vbe > 工具 > 引用 > selenium 类型库
Option Explicit
Public Sub EnterInfo()
Dim d As WebDriver
Set d = New ChromeDriver
Const URL = "https://pptgamespt.wixsite.com/mppp/tests2"
With d
.Start "Chrome"
.get URL
.SwitchToFrame .FindElementByCss("iframe")
Do
Loop While .FindElementsByCss("#input").Count = 0
.FindElementByCss("#input").SendKeys "tada"
Stop
.Quit
End With
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)