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 , 网络编程