2016-03-14 74 views
1

我使用的Webbrowser时控制的网站有一个问题。如何等待浏览器上(窗口表)运行脚本C#?

我打开一个网站

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

这个网站后有2个选择列表

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

选择沃德||||||||||||||||||||||||||

首先,我选择区

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

和休眠(warting为 “选择沃德” 负载数据)

Thread.Sleep(1000) 

,我选择沃德

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

我不能选择一个病房,因为“选择病房”数据尚未加载。选择前区

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> 

回答

0

这听起来像你正在设置线程休眠的web浏览器上。如果您将UI线程设置为睡眠状态,则Web浏览器将不会继续加载。

+0

感谢您的评论。在这种情况下,你有什么建议吗? –

+0

@TongTrongNhan你可以用'等待Task.Delay(1000);'作为一个穷人的解决方案... – Eser