我正在尝试使用PowerPoint VBA在使用Wix Site Builder创建的网页上访问iframe的元素。
我尝试了在Google以及其他网页上找到的所有内容,但无法弄清楚。当我尝试使用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”的输入更改输入的值,该输入没有类或id。上面的代码是我尝试的最后一个抛出错误“自动化错误”的代码。
答案 0 :(得分:0)
我认为您会遇到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之后,必须添加对硒类型库的引用vbe>工具>引用>硒类型库
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