gpt4 book ai didi

javascript - 使用 VBA 从 iFrame 填充网页上的下拉列表

转载 作者:行者123 更新时间:2023-11-27 23:15:37 26 4
gpt4 key购买 nike

我有一个代码可以打开网页并单击链接。然后,这会从 Iframe 加载数据,我正在尝试更改下拉列表中的值。

我正在尝试从 Year iFrame 填充 Manufr 下拉列表。使用 VBA,但出现对象变量或未设置 block 变量错误。这是否与我尝试编辑的数据位于 Iframe 中有关?

这是我尝试使用的代码

Sub Scrape2()
Dim Browser As InternetExplorer
Dim Doc As HTMLDocument
Dim element As IHTMLElement

Set Browser = New InternetExplorer
Browser.Visible = True
Browser.navigate "http://catalog.xxxxxxx.com"

Do While Browser.Busy And Not Browser.readyState = READYSTATE_COMPLETE
DoEvents
Loop

For Each l In Browser.document.getElementsByTagName("a")
If l = "http://catalog.xxxxx.com/Catalog.asp?VehicleRef=2" Then
l.Click
Exit For
End If
Next



Stop

Set Doc = Browser.document

Dim mainIframe
Dim subIframe
Set mainIframe = Doc.frames.Item(1).document
Set subIframe = mainIframe.frames.Item(0).document
Set element = mainIframe.getElementById("Manufacturer").selectedIndex = 1
element.FireEvent ("onchange")

Set Doc = Nothing
Set Browser = Nothing
End Sub

最佳答案

尝试:

Dim d2
Set d2 = Doc.frames("Year").document

Set element = d2.getElementById("Manufacturer").selectedIndex = 1
element.FireEvent ("onchange")

编辑:试试这个

Dim d2, evt
Set d2 = Doc.frames("main").document.frames("year").document
Set element = d2.getElementById("Manufacturer")

If Not element Is nothing Then

Debug.Print "Got drop-down"
element.selectedIndex = 1

'either this...
element.FireEvent ("onchange")

'or try this...
Set evt = d2.createEvent("HTMLEvents")
evt.initEvent "change", True, False
element.dispatchEvent evt

Else
Debug.Print "couldn't get drop-down!"
End if

关于javascript - 使用 VBA 从 iFrame 填充网页上的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35859674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com