Итак, в основном я получил это:
<select name="ctl00$cp$cbRodzajUslugi" onchange="javascript:setTimeout('__doPostBack(\'ctl00$cp$cbRodzajUslugi\',\'\')', 0)" id="cp_cbRodzajUslugi" style="width:200px;">
<option selected="selected" value="-1"></option>
<option value="708">708</option>
<option value="1156">1156</option>
<option value="1157">1157</option>
</select>
Что мне нужно сделать, так это программно выбрать один из параметров, кроме значения со значением -1, и запустить скрипт «onchange». Итак, что я имею до сих пор:
HtmlElement selectType = mDoc.GetElementById("cp_cbRodzajUslugi");
var selectTypeChildren = mDoc.GetElementById("cp_cbRodzajUslugi").Children;
foreach (HtmlElement selectTypeItem in selectTypeChildren)
{
if (selectTypeItem.GetAttribute("value") == "1157")
{
selectTypeItem.SetAttribute("selected", "selected");
}
}
object[] args = { selectType.Name };
mDoc.InvokeScript("__doPostBack", args);
После этого ничего не происходит, событие DocumentCompleted
не запускается. Забавный факт: когда я вручную добавляю selected="selected"
к одному из параметров, а затем запускаю скрипт __doPostBack("ctl00$cp$cbRodzajUslugi", "")
в меню Chrome F12, он работает хорошо.
Что я здесь не так делаю? InvokeMember("onchange")
тоже не работает ..