c#用webbrowser选择一个列表框选项

时间:2017-02-05 15:11:37

标签: c# listbox

我正在尝试编写一个应用程序,只需单击一下即可填写Web表单。问题是我无法从列表框中选择一个选项,这是我面临的HTML代码:

 <select name="data[PvpnetAccount][date_of_birth_day]" id="PvpnetAccountDateOfBirthDay" class="ignore_keyup c-signup__input c-signup__input--select c-form-group__input c-form-group__input--select js-selectize">
                                <option value="" disabled selected >Day</option>
                                <option value="01">1</option>
                                <option value="02">2</option>
                                <option value="03">3</option>
                                <option value="04">4</option>
                                <option value="05">5</option>
                                <option value="06">6</option>
                                <option value="07">7</option>
                                <option value="08">8</option>
                                <option value="09">9</option>
                                <option value="10">10</option>
                                <option value="11">11</option>
                                <option value="12">12</option>
                                <option value="13">13</option>
                                <option value="14">14</option>
                                <option value="15">15</option>
                                <option value="16">16</option>
                                <option value="17">17</option>
                                <option value="18">18</option>
                                <option value="19">19</option>
                                <option value="20">20</option>
                                <option value="21">21</option>
                                <option value="22">22</option>
                                <option value="23">23</option>
                                <option value="24">24</option>
                                <option value="25">25</option>
                                <option value="26">26</option>
                                <option value="27">27</option>
                                <option value="28">28</option>
                                <option value="29">29</option>
                                <option value="30">30</option>
                                <option value="31">31</option>
                            </select>

我尝试了不同的选项,但到目前为止没有给我任何结果,所以我提出任何建议。我的第一次尝试是:

webBrowser1.Document.GetElementById("PvpnetAccountDateOfBirthDay").SetAttribute("value", "03");

但我知道它不会起作用。

编辑: 一个人建议我这样做:

var daySelect = WebBrowser1.Documents.GetElementById("PvpnetAccountDateOfBirthDay");
var day10Option = daySelect.Children.Single( e => e.Value == "10" );
day10Option.SetAttribute("selected", "selected");

然而,似乎 .Single 给了我错误。

1 个答案:

答案 0 :(得分:0)

作为测试目的的预防措施,以确保正确加载页面并选择了正确的元素,请查看元素的outerHTML属性。此外,您是否在后台工作程序上执行此代码,如果是,您将需要使用Action如果您需要更多说明,请告诉我。另请尝试使用IHTMLSelectElement代替HtmlElement。要使用它,请添加对

的引用
  

Microsoft.mshtml

并将using mshtml;添加到您的文件中。您可以执行以下操作后:

HtmlElement tmp = webBrowser1.Document.GetElementById("PvpnetAccountDateOfBirthDay"); IHTMLSelectElement tComboBox = (IHTMLSelectElement)tmp.DomElement; tComboBox.selectedIndex = 2;

希望有所帮助。