【问题标题】:how to fill the SELECT of a web form with .net and webbrowser如何使用 .net 和 webbrowser 填写网络表单的 SELECT
【发布时间】:2016-10-27 13:37:30
【问题描述】:

我正在尝试使用 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 选择但不适用于 stuff_chosen 选择的代码。

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

【问题讨论】:

  • 这里的 .net 问题是什么?这是 HTML。 c# 或 vb 在哪里?
  • 你好。 .SetAttribute 示例 - 帖子的最后一行 - 是您要求的 vb.net。
  • 我试过那个。没有找到孩子,所以代码不会遍历任何东西。
  • 您可能需要调用国家/地区项目的点击事件处理程序,这显然与其他地方的脚本函数挂钩。

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


【解决方案1】:

事实证明,我用于操作网页的代码运行得比网页自身构建的速度更快。 数据库查找用于填充数据列表,而后者又用于填充选择选项。我的代码在人口开始之前执行。 我用相当模糊的方式解决了这个问题:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多