问题是这样,发贴的页面是A页面,文章列表在B页面,文章发表(A)之后自动转入文章列表(B)。如同目前大多数网站的做法。我的发贴机发了第一篇之后进入了文章列表页面(B页面),这时候为了发第二篇,我必须使页面回到发贴页面(A页面)。这个时候我不知道该怎么回了。下面是我的思路。方法1 点击B页面上的发贴按钮。但发贴按钮是个链接,我不知道用WebBrowser怎么点击链接。这个没去试。顺便请教如何点击指定的链接方法2:在进入文章列表(B页面)之后我使用 WebBrowser1.GoBack; 企图通过go back回到A页面,但是时间上很难控制,不知道究竟有没有已经进入A,要多长时间进入A。所以在实际执行上总是出错。代码如下,见红色注释//WebBrowser1.oleobject.document.Forms.Item(0, 0).submit; //这三行就是点击发贴按钮。
{ //或者用指定表单名称提交
o :=WebBrowser.oleobject.document.all.item('post',0);
o.Click; //点击操作,对其它对象也可同样操作
}
//这里已经进入了B页面
sleep(20000); //为了给B页面足够载入时间,我停留了20秒。
WebBrowser1.GoBack; //企图回到A
sleep(20000); //给A足够的载入时间但是还是因为A未能如期载入(20秒我认为足够)导致发第三篇的时候未能找到正确的输入框。各位,有好方法赶紧教我。
{ //或者用指定表单名称提交
o :=WebBrowser.oleobject.document.all.item('post',0);
o.Click; //点击操作,对其它对象也可同样操作
}
//这里已经进入了B页面
sleep(20000); //为了给B页面足够载入时间,我停留了20秒。
WebBrowser1.GoBack; //企图回到A
sleep(20000); //给A足够的载入时间但是还是因为A未能如期载入(20秒我认为足够)导致发第三篇的时候未能找到正确的输入框。各位,有好方法赶紧教我。
http://hi.baidu.com/szba/blog/item/9a0e5c1eed0431fc1bd57697.html2不管到達哪個面頁基本上都可以通過
ansicontainstext(webbrowser.LocationURL,'特定與其它網頁地址不一樣的字符') 來判斷或者通過:ansicontainstext(wb.DocumentSourceText,'頁面返回成功的提示信息') 來判斷
2,有返回值吗
3, 如果返回的是失败,该如何处理?多谢
//延时函数,MSecs单位为毫秒(千分之1秒)
var
FirstTickCount, Now: Longint;
begin
FirstTickCount := GetTickCount();
repeat
Application.ProcessMessages;
Now := GetTickCount();
until (Now - FirstTickCount >= MSecs) or (Now < FirstTickCount);
end;在网上找到的,我用着挺好用的。//不过用延时的办法不太好,因为网速和服务器的快慢都不一定。