我想要网页自动登录完成以后再让ie自动跳转到另外一个网页,要怎么写?
比如百度问答网站,它这个网站登录好以后是个管理界面,并不是我想要的直接可以提问的"我要提问"那个网页,我希望自动登录,然后能直接自动给跳转到"我要提问"那个网页,这样就自动登录好了省得还要点击一下才能进行提问.
--------------
Private Sub Command1_Click()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "https://passport.baidu.com/?login"
Do
Loop Until ie.ReadyState = 4ie.Document.getElementById("username_normal").Value = "111111111111111111111111111111111"ie.Document.getElementById("normModPsp").Value = "1111111111111111111111111111111111"ie.Document.getElementsByTagname("button")(1).Clickie.Navigate "http://zhidao.baidu.com/q?ct=24&cm=16&tn=ucframework#ask"'我现在这样直接写这么一句,如果登录很快很顺利,是没问题的,它会给我既登录好又跳转过去;但是一旦登录慢了,结果就会没有登录进却直接先跳到那个"我要提问"网页去了
End Sub
------------------
多谢!

解决方案 »

  1.   

    ie.Navigate "https://passport.baidu.com/?login"while ie.IsBusy
        doevents
        sleep 100
    wend
    ...
      

  2.   

    编译错误:  sleep  "子程序或函数未定义"
      

  3.   

    加了 Private Declare Sub Sleep Lib "kernel32 " (ByVal dwMilliseconds As Long),上面问题解决但是不会跳转到那个网页去了,登录完了就没动作了:
    Private Sub Command1_Click()
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.Navigate "https://passport.baidu.com/?login"
    Do
    Loop Until ie.ReadyState = 4
    ie.Document.getElementById("username_normal").Value = "111111111111111111111111111111111"
    ie.Document.getElementById("normModPsp").Value = "1111111111111111111111111111111111"
    ie.Document.getElementsByTagname("button")(1).ClickWhile ie.IsBusy
      DoEvents
      Sleep 100
    Wend
    ie.Navigate "http://zhidao.baidu.com/q?ct=24&cm=16&tn=ucframework#ask"

    end sub
      

  4.   

    很简单,你在webbrowser的beforenavigate或navigatecomplete事件里判断url是不是后台的url,如果是就跳转
      

  5.   

    我是直接用的ie,不知道beforenavigate或navigatecomplete行不行?
      

  6.   

    一样的,你引用webbrowser控件,然后在开始的地方用private withevent声明ie对象private withevent ie  as internetexplorer