如何用.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

如何用.net和web浏览器填写web表单的SELECT

所以事实证明,我用于操作网页的代码运行速度比网页自己构建的速度要快。数据库查找用于填充数据列表,而数据列表又用于填充选择选项。我的代码在人群开始之前就开始执行了。我用一个相当模糊的命令解决了这个问题:

Do
  l_oElementCollection = m_oWebrowser1.Document.GetElementById("listOfStuff").Children
  Windows.Forms.Application.DoEvents()
Loop Until l_oElementCollection.Count > 250