1、怎样定位光标到需要录入的位置。
2、要识别出网页中的不同界面(录入不同的数据,有不同的界面)
3、怎样知道网页已经打开了,上传数据时,需要刷新,怎样知道刷新已经完成。
4、网页中有相当一部分界面是看不见的,要滚动才出来的,这部分的网页内容怎样出来?怎样在这看不见的位置中填入数据?
5、有时要提取网页中某位置的文字内容,来进行识别,怎样才做到?
实在对不起,引1次发贴求助,还没积分可送
8 个解决方案
#1
如果控制IE等浏览器的话,实现比较难
如果在程序里用WebBroser控件就容易了
如果在程序里用WebBroser控件就容易了
#2
应该不难,找找以前的贴子,不是从界面入手,而是直接对网页中的元素赋值
#3
我就是想在程序里用WebBroser控件的来打开网页的,但遇到了些技术难题:
1、用WebBroser控件打开的网页,不能用虚拟按键CTRL+C来实现选择的内容写入到剪贴板中。(但在IE中打开的网页是可以使用CTRL+C的)
2、用虚拟按键CTRL+V 对一个位置写入内容是可以实现,但连续对两个(或以上)位置写入内容 则失败:写入的内容都变成是同样的了,内容是最后付给剪贴板的值。
以上两个问题中第一个最为重要,第二个由可变通手段来实现。
1、用WebBroser控件打开的网页,不能用虚拟按键CTRL+C来实现选择的内容写入到剪贴板中。(但在IE中打开的网页是可以使用CTRL+C的)
2、用虚拟按键CTRL+V 对一个位置写入内容是可以实现,但连续对两个(或以上)位置写入内容 则失败:写入的内容都变成是同样的了,内容是最后付给剪贴板的值。
以上两个问题中第一个最为重要,第二个由可变通手段来实现。
#4
那不必用模拟按键来实现了,直接对网页元素进行操作,代码下载地址
http://ys-c.ys168.com/?Element.rar_67z82bt4bs5bt1bt0bt4bks0btlnnl0b5bt1bsrn1biu14z97f14z
{这是一个对百度网页进行输入的例子
其中的
kw',0); //获取文本框
'sb',0); //获取确定按钮
是网页元素所对应的id号 ,查看网页源码可以得到
<input type=text name=wd id=kw size=36 maxlength=100> 这是文本的
<input type=submit value=百度一下 id=sb> 这是按钮的
}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw, mshtml;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Edit1: TEdit;
Label1: TLabel;
procedure Edit1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
HtmlElent_txt,HtmlElent_btn:Olevariant;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
HtmlElent_txt.value := edit1.Text; //输入值
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('www.baidu.com');
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
HtmlElent_txt := mshtml.IHTMLDocument2(WebBrowser1.Document).all.item('kw',0); //获取文本框
HtmlElent_btn := mshtml.IHTMLDocument2(WebBrowser1.Document).all.item('sb',0); //获取确定按钮
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = chr(13) then HtmlElent_btn.click; //确定
end;
end.
#6
4楼的帮助 真的很太,太好了,让我解决了部分难题。
另外,我想识别当前的网页中功能种类(不同层次,有不同功能),本想从网页的“title” 来识别,但他们是同样的,所以想从下面的属性中识别:如两个网页中分别有:
</style></head>
<body style="margin: 5px; width: 100%; height: 100%" bgcolor="#737326" >
<form name="form1" method="post" action="Frm数据_育龄妇女编辑.Aspx?ID=0&TAG=%u65b0%u589e" id="form1">
另一网页是:
</style></head>
<body style="margin: 5px; width: 100%; height: 100%" bgcolor="#737326">
<form name="form1" method="post" action="Frm数据_妊娠情况编辑.Aspx?ID=c06a5bf7-3b7a-4bf5-9e56-0b6ddf8682be&TAG=%u65b0%u589e" id="form1">
是怎样得到这“</style></head>”的值?(从:数据_育龄妇女编辑、数据_妊娠情况编辑 我就可以识别了)
另外,我想识别当前的网页中功能种类(不同层次,有不同功能),本想从网页的“title” 来识别,但他们是同样的,所以想从下面的属性中识别:如两个网页中分别有:
</style></head>
<body style="margin: 5px; width: 100%; height: 100%" bgcolor="#737326" >
<form name="form1" method="post" action="Frm数据_育龄妇女编辑.Aspx?ID=0&TAG=%u65b0%u589e" id="form1">
另一网页是:
</style></head>
<body style="margin: 5px; width: 100%; height: 100%" bgcolor="#737326">
<form name="form1" method="post" action="Frm数据_妊娠情况编辑.Aspx?ID=c06a5bf7-3b7a-4bf5-9e56-0b6ddf8682be&TAG=%u65b0%u589e" id="form1">
是怎样得到这“</style></head>”的值?(从:数据_育龄妇女编辑、数据_妊娠情况编辑 我就可以识别了)
#7
新问题:在正式录入的网页中,网页中的写法不同了,是以下这个格式的,对这种又该怎样对其付值?
(网页中还有一个是 通过下拉的列表框来付值,对这又该怎办?)
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="TreeViewInfo_ExpandState" id="TreeViewInfo_ExpandState" value="ennnnnnnnnnnn" />
<input type="hidden" name="TreeViewInfo_SelectedNode" id="TreeViewInfo_SelectedNode" value="" />
<input type="hidden" name="TreeViewInfo_PopulateLog" id="TreeViewInfo_PopulateLog" value="" />
(网页中还有一个是 通过下拉的列表框来付值,对这又该怎办?)
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="TreeViewInfo_ExpandState" id="TreeViewInfo_ExpandState" value="ennnnnnnnnnnn" />
<input type="hidden" name="TreeViewInfo_SelectedNode" id="TreeViewInfo_SelectedNode" value="" />
<input type="hidden" name="TreeViewInfo_PopulateLog" id="TreeViewInfo_PopulateLog" value="" />
#8
一样啊比如获取 id="form1" 这个元素后,类似HtmlElent_txt.value := edit1.Text; //输入值
可以得到它的HtmlElent_Frm.action的值
下拉框一样了,进一步操作下拉框的相关属性
像input type="hidden"这类是隐藏的,用来传递会话或记录数据,不要动它们了
可以得到它的HtmlElent_Frm.action的值
下拉框一样了,进一步操作下拉框的相关属性
像input type="hidden"这类是隐藏的,用来传递会话或记录数据,不要动它们了
#1
如果控制IE等浏览器的话,实现比较难
如果在程序里用WebBroser控件就容易了
如果在程序里用WebBroser控件就容易了
#2
应该不难,找找以前的贴子,不是从界面入手,而是直接对网页中的元素赋值
#3
我就是想在程序里用WebBroser控件的来打开网页的,但遇到了些技术难题:
1、用WebBroser控件打开的网页,不能用虚拟按键CTRL+C来实现选择的内容写入到剪贴板中。(但在IE中打开的网页是可以使用CTRL+C的)
2、用虚拟按键CTRL+V 对一个位置写入内容是可以实现,但连续对两个(或以上)位置写入内容 则失败:写入的内容都变成是同样的了,内容是最后付给剪贴板的值。
以上两个问题中第一个最为重要,第二个由可变通手段来实现。
1、用WebBroser控件打开的网页,不能用虚拟按键CTRL+C来实现选择的内容写入到剪贴板中。(但在IE中打开的网页是可以使用CTRL+C的)
2、用虚拟按键CTRL+V 对一个位置写入内容是可以实现,但连续对两个(或以上)位置写入内容 则失败:写入的内容都变成是同样的了,内容是最后付给剪贴板的值。
以上两个问题中第一个最为重要,第二个由可变通手段来实现。
#4
那不必用模拟按键来实现了,直接对网页元素进行操作,代码下载地址
http://ys-c.ys168.com/?Element.rar_67z82bt4bs5bt1bt0bt4bks0btlnnl0b5bt1bsrn1biu14z97f14z
{这是一个对百度网页进行输入的例子
其中的
kw',0); //获取文本框
'sb',0); //获取确定按钮
是网页元素所对应的id号 ,查看网页源码可以得到
<input type=text name=wd id=kw size=36 maxlength=100> 这是文本的
<input type=submit value=百度一下 id=sb> 这是按钮的
}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw, mshtml;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Edit1: TEdit;
Label1: TLabel;
procedure Edit1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
HtmlElent_txt,HtmlElent_btn:Olevariant;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
HtmlElent_txt.value := edit1.Text; //输入值
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('www.baidu.com');
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
HtmlElent_txt := mshtml.IHTMLDocument2(WebBrowser1.Document).all.item('kw',0); //获取文本框
HtmlElent_btn := mshtml.IHTMLDocument2(WebBrowser1.Document).all.item('sb',0); //获取确定按钮
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = chr(13) then HtmlElent_btn.click; //确定
end;
end.
#5
#6
4楼的帮助 真的很太,太好了,让我解决了部分难题。
另外,我想识别当前的网页中功能种类(不同层次,有不同功能),本想从网页的“title” 来识别,但他们是同样的,所以想从下面的属性中识别:如两个网页中分别有:
</style></head>
<body style="margin: 5px; width: 100%; height: 100%" bgcolor="#737326" >
<form name="form1" method="post" action="Frm数据_育龄妇女编辑.Aspx?ID=0&TAG=%u65b0%u589e" id="form1">
另一网页是:
</style></head>
<body style="margin: 5px; width: 100%; height: 100%" bgcolor="#737326">
<form name="form1" method="post" action="Frm数据_妊娠情况编辑.Aspx?ID=c06a5bf7-3b7a-4bf5-9e56-0b6ddf8682be&TAG=%u65b0%u589e" id="form1">
是怎样得到这“</style></head>”的值?(从:数据_育龄妇女编辑、数据_妊娠情况编辑 我就可以识别了)
另外,我想识别当前的网页中功能种类(不同层次,有不同功能),本想从网页的“title” 来识别,但他们是同样的,所以想从下面的属性中识别:如两个网页中分别有:
</style></head>
<body style="margin: 5px; width: 100%; height: 100%" bgcolor="#737326" >
<form name="form1" method="post" action="Frm数据_育龄妇女编辑.Aspx?ID=0&TAG=%u65b0%u589e" id="form1">
另一网页是:
</style></head>
<body style="margin: 5px; width: 100%; height: 100%" bgcolor="#737326">
<form name="form1" method="post" action="Frm数据_妊娠情况编辑.Aspx?ID=c06a5bf7-3b7a-4bf5-9e56-0b6ddf8682be&TAG=%u65b0%u589e" id="form1">
是怎样得到这“</style></head>”的值?(从:数据_育龄妇女编辑、数据_妊娠情况编辑 我就可以识别了)
#7
新问题:在正式录入的网页中,网页中的写法不同了,是以下这个格式的,对这种又该怎样对其付值?
(网页中还有一个是 通过下拉的列表框来付值,对这又该怎办?)
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="TreeViewInfo_ExpandState" id="TreeViewInfo_ExpandState" value="ennnnnnnnnnnn" />
<input type="hidden" name="TreeViewInfo_SelectedNode" id="TreeViewInfo_SelectedNode" value="" />
<input type="hidden" name="TreeViewInfo_PopulateLog" id="TreeViewInfo_PopulateLog" value="" />
(网页中还有一个是 通过下拉的列表框来付值,对这又该怎办?)
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="TreeViewInfo_ExpandState" id="TreeViewInfo_ExpandState" value="ennnnnnnnnnnn" />
<input type="hidden" name="TreeViewInfo_SelectedNode" id="TreeViewInfo_SelectedNode" value="" />
<input type="hidden" name="TreeViewInfo_PopulateLog" id="TreeViewInfo_PopulateLog" value="" />
#8
一样啊比如获取 id="form1" 这个元素后,类似HtmlElent_txt.value := edit1.Text; //输入值
可以得到它的HtmlElent_Frm.action的值
下拉框一样了,进一步操作下拉框的相关属性
像input type="hidden"这类是隐藏的,用来传递会话或记录数据,不要动它们了
可以得到它的HtmlElent_Frm.action的值
下拉框一样了,进一步操作下拉框的相关属性
像input type="hidden"这类是隐藏的,用来传递会话或记录数据,不要动它们了