Как правильно использовать скрипт вызова c # WebBrowser? - PullRequest
0 голосов
/ 05 сентября 2018

Итак, в основном я получил это:

<select name="ctl00$cp$cbRodzajUslugi" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;ctl00$cp$cbRodzajUslugi\&#39;,\&#39;\&#39;)&#39;, 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") тоже не работает ..

...