如何使用.net和webbrowser填充Web表单的SELECT

时间:2016-10-27 13:37:31

标签: c# vb.net webforms webbrowser-control

我正在尝试使用webbrowser填写网页的<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看起来像这样:

<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>

Inspector视图显示了更多......

<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 select但不是stuff_chosen select。

For Each oElement as HTMLElement In WebBrowser1.Document.GetElementById("yesNo").Children
  If oElement.InnerHtml = "Yes" Then oElement.SetAttribute("selected", "selected")
Next

1 个答案:

答案 0 :(得分:0)

事实证明,我操作网页的代码运行得更快,网页就会自行构建。 数据库查找用于填充数据列表,而数据列表又用于填充选择选项。我的代码在人口开始之前就已经执行了。 我解决了一个相当狡猾的发布:

  string json = "{\"$id\":\"1\",\"status\":\"200\",\"description\":\"Status OK\",\"user\":{\"$id\":\"2\",\"Id\":124200,\"Name\":\"Rown Doger\",\"Email\":\"rown@email.com\",\"Password\":123,\"DateJoined\":\"2016-10-28T20:20:50\",\"Picture\":\"\",\"AccessToken\":\"testtoken_3432\"}}";
  JavaScriptSerializer js = new JavaScriptSerializer();
  RootObject Res = js.Deserialize(json, typeof(RootObject)) as RootObject;