例如:
Webbrowser1.Document.GetElementById("btn").InvokeMember("Click");
click之后发现Webbrowser1的状态为complete没变,isbusy也为false没变,使用thread.sleep和timer则webbrowser浏览器就不动了,使用状态判断和时间延迟的方式都不行
那么请问如何判断click触发的事件执行完毕阿

解决方案 »

  1.   

    这个是取到了的,在运行界面上能够看到运行结果,不过需要在对运行结果作进一步操作,因此需要判断结果什么时候出来,问题就是如上所说了,哪怕是用sleep和timer都不行,用sleep和timer好像浏览器也停止执行了
      

  2.   

    webBrowser1.ObjectForScripting = this;
     this.webBrowser1.Document.InvokeScript("msgalert", new string[] { "C# 访问JS代码" }); 
    这样应该可以访问到  测试过了 html网页上的  <script type="text/javascript">
            function msgalert(msg) {
                alert(msg);
            }
        </script> 如果报com可访问性错误的话 加上[System.Runtime.InteropServices.ComVisibleAttribute(true)] 这句话就可以了  测试过了
      

  3.   

    谢谢兄弟,不过我只是想知道如何等待click操作结束以便进行下一步操作
      

  4.   

       webbrowser_Documentcompltes里面检索网址 ,进行方法
      

  5.   

    可以让js触发C#函数。在js里,click操作结束位置写window.external.clickComplete();在C#里。
    CSharpMethodForJavaScript cs = new CSharpMethodForJavaScript(this);
    webBrowser1.ObjectForScripting = cs;[System.Runtime.InteropServices.ComVisibleAttribute(true)]//将该类设置为com可访问
    public class CSharpMethodForJavaScript
    {
      public void clickComplete(){
        // click完成