当前位置:编程学习 > VB >>

WebBrowser控件DocumentComplete时间中,跳转2个页面,如何判断是否加载页面。

实现功能:循环以下步骤“自动登陆(loginUrl),登陆后等待一段时间,再自动退出(logoutUrl)。”
但是经常会在成功循环几次后,
“WebBrowser1.Document.GetElementByID("ctl00_header1_btn_logout").Click”或者“WebBrowser1.Document.GetElementByID("tb_Username").InnerText = user(i)”
代码出错,估计可能是页面没有加载完或者,是因为没有成功进入退出找不到相应的页面控件导致。
我又使用长时间停止,但是即使停止15秒,还是会在多次运行后出错。

我希望能在页面加载完毕后才控制页面控件,请问应该如何写代码,谢谢。

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  Dim user
  user = Array("a", "b", "c", "d")  '自动登陆人员数组
  
If (URL = loginUrl Or URL = logoutUrl) Then
  If (pDisp Is WebBrowser1.object) Then
    '---------- begin 循环4个用户 ----------
    For i = 0 To UBound(user)
      '-------- begin 循环登陆 --------
      For j = 1 To loginTime        
       '登陆
        If URL = loginUrl Then
          '登陆loginURL页面
          WebBrowser1.Document.GetElementByID("tb_Username").InnerText = user(i)
          WebBrowser1.Document.GetElementByID("tb_Password").InnerText = "password"
          WebBrowser1.Document.GetElementByID("btn_Sutmit").Click

          '进入logoutURL页面
          Pause (1000 * 15)   '等待x秒
           WebBrowser1.Document.GetElementByID("btn_logout").Click      --退出
       End If
      Next
      '-------- begin 循环登陆 --------
    Next i
    '---------- end 循环4个用户 ----------
  End If
End If
End Sub --------------------编程问答-------------------- 我也碰到这样的问题,经常出错,经常内存溢出。 --------------------编程问答-------------------- //C#中有一段代码是这样
 if (this.webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
                MessageBox.Show("页面未加载完成,请等待!");
} --------------------编程问答-------------------- 你这样能行么????
if url="登录成功网址" then
     点击退出按钮
end if
if url="未登录网址" then
     点击登录按钮
end if
这样界面不是肯定能加载完成了么。4个用户的话,就定义一个外部数组变量,然后使数组下标自动加1,这个思路行不行?
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,