delphi TEmbeddedWB组件导航完成

delphi TEmbeddedWB组件导航完成,delphi,Delphi,我是delphi和TEmbeddedWB(TWebBrowser的替代品,它在delphi中嵌入了Internet Explorer)的新手,我真的不明白我的源代码哪里有问题 非常简单,但不能正常工作 我的问题是我的delphi源代码EmbeddedWB1.ReadyState ReadyState\u无法工作 没错。存在登录表单 在这个网站上() 如果浏览此页面,则无法正确使用 EmbeddedWB1.ReadyState ReadyState_交互式,因为网页导航太快 因此EmbeddedB

我是delphi和TEmbeddedWB(TWebBrowser的替代品,它在delphi中嵌入了Internet Explorer)的新手,我真的不明白我的源代码哪里有问题

非常简单,但不能正常工作

我的问题是我的delphi源代码EmbeddedWB1.ReadyState ReadyState\u无法工作

没错。存在登录表单

在这个网站上()

如果浏览此页面,则无法正确使用

EmbeddedWB1.ReadyState ReadyState_交互式,因为网页导航太快

因此EmbeddedBB1无法检测到登录表单元素,因此发生了错误

有人能帮我吗?问题是什么?提前谢谢

      begin
        //WB := EmbeddedWB;
        forms := EmbeddedWB1.doc2.Forms as IHTMLElementCollection;
        theForm := forms.Item(0,'') as IHTMLFormElement;

        EmbeddedWB1.Navigate('http://sports.khan.co.kr/htdocs/login/login.html');
        while EmbeddedWB1.ReadyState <> READYSTATE_INTERACTIVE do
        begin
        Application.ProcessMessages;
          Sleep(500);
        end;
          with EmbeddedWB1 do
          begin
            EmbeddedWB1.OleObject.Document.GetElementByID('uid').Value := 'loginid';
            EmbeddedWB1.OleObject.Document.GetElementByID('upw').Value := 'password';
            EmbeddedWB1.OleObject.Document.forms.item(1).submit();

          end;
      end;
开始
//WB:=嵌入式WB;
表单:=嵌入的wb1.doc2.forms作为IHTMlementCollection;
格式:=forms.Item(0',)作为IHTMLFormElement;
EmbeddedWB1.Navigate('http://sports.khan.co.kr/htdocs/login/login.html');
而EmbeddedWB1.ReadyState ReadyState_交互式
开始
Application.ProcessMessages;
睡眠(500);
结束;
使用嵌入式wb1do
开始
EmbeddedWB1.OleObject.Document.GetElementByID('uid')。值:='loginid';
EmbeddedWB1.OleObject.Document.GetElementByID('upw')。值:='password';
EmbeddedWB1.OleObject.Document.forms.item(1.submit();
结束;
结束;

与其在循环中使用application.processmessages,为什么不使用OnNavigateComplete事件,然后在该事件中激发您的登录(如果您的状态正确)。要对此进行设置,请创建一个新的枚举类型
NavigationState=(nsUnknown,nsLoginRequested)
,然后在导航到登录名之前,将NavigationState的实例变量设置为nsLoginRequested。在OnNavigateComplete中,如果状态变量为nsLoginRequested,则处理登录并将状态变量重置为nsUnknown(或状态的下一步)

这是一个简单的状态引擎模式,完全消除了循环