我有一个要与之交互的网页。它有一个名为“结果”的父组合框。当 Result 设置为 Index 2 的选项时,它会弹出一个带有两个选项的子组合框。设置父组合框的索引并触发 onchange 事件非常有效。
但是,我所做的任何事情都没有成功地以我正在寻找的方式操纵子组合框。
这是子组合框的网页代码:
<div style="display:none;" id="SAVE PENDINGDIV" >
<select name="SAVE PENDINGSelect" class="famSelect" style="width:10em" onChange="handleSys(this.options[this.selectedIndex].value)">
<option value="" selected="selected" >Text 1</option>
<option value="Y">Text 2</option>
这是我操作父组合框的代码:
Set objshell = CreateObject("Shell.Application")
IE_Count = objshell.Windows.count
For x = 0 To (IE_Count - 1)
On Error Resume Next ' sometimes more web pages are counted than are open
my_URL = objshell.Windows(x).document.Location
my_title = objshell.Windows(x).document.Title
'find the desired page
If my_title Like "Page Title" Then
Set ie = objshell.Windows(x)
Exit For
End If
Next
ie.document.getelementbyid("Result").selectedIndex = 2
ie.document.getelementbyid("Result").FireEvent ("onchange")
我试过 getelementbyname 和 getelementbyid。以下是我尝试过但没有成功的事情的概要:
ie.document.getelementbyid("SAVE PENDINGDIV").Value = "Text 2"
ie.document.getelementbyid("SAVE PENDINGDIV").Focus
ie.document.getelementbyid("SAVE PENDINGDIV").FireEvent ("onchange")
ie.document.getelementbyid("SAVE PENDINGDIV").Selected = "Selected"
ie.document.getelementbyid("SAVE PENDINGDIV").Click
ie.document.getelementbyid("SAVE PENDINGDIV").selectedIndex = 1
ie.document.getelementbyid("SAVE PENDINGDIV").options.selectedIndex = 1
我只做了一件事:
ie.document.getelementbyid("SAVE PENDINGDIV").innerText = "Text 2"
这摆脱了我不想做的组合框,并将其替换为“文本 2”作为纯文本。