<pre>
<select name="ctl00$ContentPlaceHolder1$ddlSection"
onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$ddlSection\',\'\')', 0)" id="ctl00_ContentPlaceHolder1_ddlSection" class="Dropdown">
<option value="0">----Select-----</option>
<option selected="selected" value="131518424">A</option>
<option value="131518425">B</option>
<option value="131518426">C</option>
<option value="131518427">D</option>
<option value="131518428">E</option>
<option value="131518429">F</option>
<option value="131518430">G</option>
<option value="131518431">H</option>
<option value="131518432">I</option>
<option value="131518433">J</option>
</select>
</pre>
答案 0 :(得分:0)
您的代码不在此处运行,密码无效,但是您可以尝试类似的操作
Dim opts As Object
Dim opt As Object
Set opts = IE.document.getElementsById("ctl00_ContentPlaceHolder1_ddldiability")
For Each opt In opts
If opt.innerText = "A" Then
opt.Selected = True
Exit For
End If
Next
opts.FireEvent ("onchange")
答案 1 :(得分:0)
我将使用With syntax
稍作重写。
理想地添加等待条件以使微调框消失,或者如果页面使用ajax,则可以尝试监视该条件是否完成,而不是显式等待(我已经使用过);传统的页面加载等待是不够的。尝试从下拉列表中进行选择之前的等待可能就足够了,但是您还可以附加要触发的事件,然后触发该事件。
将用户名包含在“”中,以便作为字符串文字传递。
最底层的通话应该使用getElementById
,而不是getElementsById
您可以通过querySelector使用属性选择器进行下拉选择。
假设您的下拉菜单如下:
<select name="alphabetSoup" form="aForm">
<option value ="1">A</option>
<option value ="2">B</option>
<option value ="3">C</option>
</select>
您可以使用属性选择器,通过使用"A"
属性和value
属性值来定位value
的选项:
ie.document.querySelector("[value='1']")
其中1是value
的{{1}}标签元素的option
属性的值
VBA:
"A"