2
我想登录(执行一些例行任务)到一个网页(www.soccerproject.com),我无法做到这一点,因为提交按钮类是“superbutton”哪不不有click()处理程序或ID开头。我尝试执行绑定到按钮的onClick方法的JavaScript,但它没有工作,所以这里是我的代码,如果有人可以提供一些帮助,我会很感激。自动登录(webBrowser)
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.soccerproject.com/spnewl_index.php');
end;
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var ii:integer ;
begin
if (WebBrowser1.LocationURL='http://www.soccerproject.com/spnewl_index.php') and (i<4) then inc(i);
if i=4 then begin
WebBrowser1.OleObject.Document.getElementById('login').setAttribute('value', Edit1.Text);
WebBrowser1.OleObject.Document.getElementById('password').setAttribute('value', Edit2.Text);
wait(200);
WebBrowser1.OleObject.Document.forms[0].submit();
WebBrowser1.Navigate('http://www.soccerproject.com/#');
end;
end;
我数到4的原因是,多数民众赞成在web浏览器需要完全加载和显示该网站的时间(能够填补文本)。此外,wait()函数只需等待200毫秒(只是可以肯定)。在此先感谢
我会说,如果你导航到'http://www.soccerproject.com/login你不需要这么做。 php'在'Navigate'方法的'PostData'参数中发布数据,例如['这种方式'](http://pastebin.com/Vmt8QYaF)。该登录脚本执行的发布请求由浏览器嗅探并用Delphi 2009进行测试,似乎可行。尽管我仍然想知道是否有一种方法可以优化将参数复制到我的代码中使用的字节变量数组中的难看外观。也许我会问一个关于它的问题。 [+1] – TLama
@Tlama,不错的选择!我相信你可以使用Move()将字节复制到VarArray中? – whosrdaddy
谢谢,我整理出来,现在它确实是我想要的:) –