如何等待Webbrowser(窗体)运行脚本C#?

时间:2016-03-14 22:26:07

标签: c# .net winforms

使用Webbrowser控制网站时遇到一个问题。

加载网站后

webBrowser.Navigate(pageURL);
                while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
                    System.Windows.Forms.Application.DoEvents();

本网站有2个选择列表

选择Distrcit ||||||||||||||||||||||

选择Ward ||||||||||||||||||||||||||

首先我选择区

elementDistrict.Children()[2].SetAttribute("selected", "selected");
elementDistrict.InvokeMember("onchange");

和睡眠(Warting for“Select Ward”加载数据)

Thread.Sleep(1000)
之后,我选择了Ward

elementDistrict.Children()[3].SetAttribute("selected", "selected")

我无法选择病房,因为“Select Ward”数据尚未加载。

选择区之前的HTML页面:

<select id="cboDistrictPost" onchange="ChangeDistrictPost($(this).val())" class="select" tabindex="5">
    <option value="1">District 1 </option>
    <option value="2">District 2 </option>
</select>

<select id="cboWardPost" class="select" tabindex="5">
    <option value="-1">---Select Ward---</option>
</select>

1 个答案:

答案 0 :(得分:0)

听起来您正在设置网络浏览器处于打开状态的线程。如果将UI线程设置为休眠,则Web浏览器将无法继续加载。