我正在尝试编写一个应用程序,只需单击一下即可填写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 给了我错误。
答案 0 :(得分:0)
作为测试目的的预防措施,以确保正确加载页面并选择了正确的元素,请查看元素的outerHTML
属性。此外,您是否在后台工作程序上执行此代码,如果是,您将需要使用Action
如果您需要更多说明,请告诉我。另请尝试使用IHTMLSelectElement
代替HtmlElement
。要使用它,请添加对
Microsoft.mshtml
并将using mshtml;
添加到您的文件中。您可以执行以下操作后:
HtmlElement tmp = webBrowser1.Document.GetElementById("PvpnetAccountDateOfBirthDay");
IHTMLSelectElement tComboBox = (IHTMLSelectElement)tmp.DomElement;
tComboBox.selectedIndex = 2;
希望有所帮助。