如何用.net和web浏览器填写web表单的SELECT
本文关键字:web 表单 SELECT 浏览器 何用 net | 更新日期: 2023-09-27 18:15:10
我正在尝试使用浏览器填写网页的<SELECT>
。我运气不错。一个我可以完成,另一个是在影射我。我可以更新的部分如下所示:
<select class="width-80" id="yesNo" name="yesNo" tabindex="1" data-placeholder="Select Yes/No..." data-bind="value: yesNo">
<option value=""></option>
<option value="1">Yes</option>
<option value="2">No</option>
</select>
SELECT I can't fill out如下所示:
<select class="width-80 chosen-select" name="listOfStuff" id="listOfStuff" tabindex="2" data-bind="value: ListDetails().ListID, selectedText: ListDetails().ListDesc" data-placeholder="Select a thing..."></select>
检查器视图显示了更多…
<SELECT>....as above</SELECT>
<div id="stuff_chosen">
<a class="chosen-thing">
<span>Thingo 1</span>
</a>
<div class="selected-dropdown">
<ul class="search results">
<li class="active-result" style="" data-option-array-index="0">Please select country</li>
<li class="active-result" style="" data-option-array-index="1">United States</li>
</ul>
</div>
所以对于第二个的结构,我不能使用:
.SetAttribute("selected", "selected")
…
下面是用于yesNo选择而不是stuff_chosen选择的代码。
For Each oElement as HTMLElement In WebBrowser1.Document.GetElementById("yesNo").Children
If oElement.InnerHtml = "Yes" Then oElement.SetAttribute("selected", "selected")
Next
所以事实证明,我用于操作网页的代码运行速度比网页自己构建的速度要快。数据库查找用于填充数据列表,而数据列表又用于填充选择选项。我的代码在人群开始之前就开始执行了。我用一个相当模糊的命令解决了这个问题:
Do
l_oElementCollection = m_oWebrowser1.Document.GetElementById("listOfStuff").Children
Windows.Forms.Application.DoEvents()
Loop Until l_oElementCollection.Count > 250