VBA IE更改下拉值
尝试了下面的代码以下URL Scripture look up。请如何将下拉值从WEB
更改为RV1909
?VBA IE更改下拉值
Dim Doc As HTMLDocument
Set Doc = IEApp.document
TestV2 = ""
TestV3 = ""
TestV2 = Doc.getElementsByClassName("app-list text-list")(0).innerText
Debug.Print "4b of 5: " & TestV2
IEApp.Doc.getElementsByClassName("app-list text-list").selectedIndex = 1
IEApp.Doc.getElementsByClassName("app-list text-list").FireEvent ("onchange")
TestV3 = Doc.getElementsByClassName("app-list text-list")(0).innerText
Debug.Print "4c of 5: " & TestV3
从其他职位
试过许多方法,下面不工作:
IEApp.Doc.getElementsByClassName("app-list text-list")(0).innerHTML = "RV1909"
这里是Chrome检查的截图:
在这种情况下,仅仅更改div.app-list.text-list
元素innerText
是不够的,因为您可以看到元素很简单div
,但甚至不是ul
。它应该通过在click
事件上调用的脚本进行更改。所以,首先你需要点击div
来显示整个列表,然后点击RV1909项目。下面的例子演示了如何可以做:
Sub Test()
Dim oIE As Object
Dim oDiv As Object
Set oIE = CreateObject("InternetExplorer.Application")
With oIE
.Visible = True
.Navigate "http://ebible.org/study/"
Do While .readyState <> 4 Or .Busy
DoEvents
Loop
With .Document
Do While .readyState <> "complete"
DoEvents
Loop
Set oDiv = .getElementsByClassName("app-list text-list")(0)
oDiv.Click
Do While .readyState <> "complete"
DoEvents
Loop
For Each oNode In .getElementsByClassName("text-chooser-main")(0).getElementsByClassName("text-chooser-abbr")
If oNode.innerText = "RV1909" Then
oNode.Click
Do While oDiv.innerText <> "RV1909"
DoEvents
Loop
Exit For
End If
Next
End With
End With
End Sub
更改HTML div元素<div class=app-list text-list>WEB</div>
到<div class=app-list text-list>RV1909</div>
请,我将如何修改这个改变DIV IEApp.Doc.getElementsByClassName(“应用列表文本列表”)(0).value的= “RV1909” –
尝试了其他帖子的很多方法,以下不起作用: IEApp.Doc.getElementsByClassName(“app-list text-list”)(0).innerHTML =“RV1909” –
谢谢您的解决方案。 –