浏览器控件,自动登录指定站点,新窗口超链接打开问题,
编写一程序,自动登录若干网站。
采用如下代码可自动登录公司OA
- Delphi(Pascal) code
webOA.Navigate('http://OA访问地址'); while webOA.busy do Application.ProcessMessages; while webOA.ReadyState <>READYSTATE_COMPLETE do Application.ProcessMessages; UserEdt := (webOA.Document as IHTMLDOCUMENT2).all.item('userName',emptyParam) as IHTMLELEMENT; UserPwd := (webOA.Document as IHTMLDOCUMENT2).all.item('pwd',emptyParam) as IHTMLELEMENT; LogBtn := (webOA.Document as IHTMLDOCUMENT2).all.item('btnLogin',emptyParam) as IHTMLELEMENT; UserEdt.setAttribute('value','账号',0); UserPwd.setAttribute('value','密码',0); LogBtn.Click;但由于点击登录按钮后,页面是从新窗口打开登录后的界面。而这里是delphi的webbrowser控件。
所以会从新建的ie浏览器窗口打开已登录页面。
但出现以下问题:
有些网站登录后,在新开的IE显示正确登录结果。
有些网站点登录后,在新开的IE中显示未登录的提示,貌似程序控件中的Session未带出来。
不知道该如何处理?????
或者有没有方法可以在delphi程序中直接调用系统的ie浏览器打开指定网站。
并且delphi程序可以直接读写该页面中的控件值或其他内容。以及调用页面中的客户端脚本
实现自动填写表单登录网站的功能呢?
[解决办法]
如果你使用WebBrowser的话,实际是调用IE的内核,Cookie和Session与IE是共用的。
建议你在WebBrowser的OnNewWindows2事件中截获打开新窗口的消息,然后把新窗口显示到另一个WebBrowser中。
[解决办法]
首先确定多次点击登录企业邮箱的按钮,提交的URL是正确的。