我正在尝试控制website上的下拉列表,但由于某种原因无法与之交互。以下是我认为从下拉菜单中负责的HTML部分:
<div id="content">
<div id="main">
<div class="container">
<div class="formBody">
<h1>Get a Quote</h1>
<div style="width:215px; height:35px;" class="noBottomSpacing">
<select id="quoteDropdown" name="position">
<option>Select Type of Quote</option>
<option value="ltl">LTL Quote</option>
<option value="truckload">Truckload Quote</option>
<option value="expedited">Expedited Quote</option>
<option value="Mexico">Mexico Quote</option>
</select>
</div>
</div>
<br />
<div class="quoteContent">
</div>
</div>
</div>
我尝试了几种不同的VBA代码段,但似乎没有任何效果。
ie.Document.getElementbyID("quoteDropdown").selectedindex = 1
ie.Document.getElementbyID("quoteDropdown").Item(0).Value = 1
ie.Document.getElementbyID("quoteDropdown").Value = "ltl"
如果有人有任何指导我会很感激。谢谢!
答案 0 :(得分:0)
像
这样的东西Dim ie As SHDocVw.InternetExplorer
Dim d As MSHTML.IHTMLSelectElement
Set ie = New InternetExplorer
ie.Visible = 1
ie.navigate "http://www.saia.com/RequestQuote.aspx"
While ie.Busy Or ie.readyState <> READYSTATE_COMPLETE
DoEvents
Wend
Set d = ie.document.getElementById("quoteDropdown")
' Then use d.selectedindex or d.item(1).text d.value etc.
查看网页源代码是通过每个内部项目的click事件处理的,因此您需要获取这些内容,然后触发click事件
从页面“$('#quoteDropdown')。val('ltl')。触发器('click')。selectric('refresh'); loadquote( 'LTL');“
答案 1 :(得分:0)
好的,我弄明白了。感谢Nathan_Sav指出我的说法。这段代码正在改变索引,但并没有触发事件。
ie.document.getElementbyID("quoteDropdown").selectedindex = 1
为了解雇事件我必须调用函数&#34; loadquote&#34;
ie.document.parentWindow.execScript "loadquote('ltl')"
这成功地调用了函数&#34; loadquote&#34;并更新了页面。