Delphi는 웹 폼 데이터의 자동 제출을 실현한다
MSHTML은 마이크로소프트의COM 구성 요소로 HTML 언어의 모든 요소와 속성을 봉인하여 표준 인터페이스를 통해 지정한 웹 페이지의 모든 요소에 접근할 수 있습니다.
MSHTML 대상 모델은 일부 대상과 집합으로 구성되어 있습니다. 뿌리에 있는 것은 HTML입니다. 페이지를 여는 1개의 창을 설명하는데, 일련의 집합과 대상을 포함합니다.Frames 컬렉션, History, Location, Navigator, Document, Vi-sum, Event 객체 등 고객 창의 실제 웹 페이지에 나타나는 설명은 Document 객체입니다.일련의 속성, 메서드, 객체 및 컬렉션으로 구성됩니다. 여기서 All 컬렉션에는 웹 페이지의 모든 태그(Tag) 요소가 포함되며 주요 메서드 및 속성은 다음과 같습니다.
(1)Length(길이): 표시가 나타나는 개수로 표시의 집합을 0에서 시작하는 1차원 그룹으로 이해하고 그 순서는 표시가 웹 위치에 따라 배열한다.(2) Tags(태그): Doc.Al1.Tags(P)가 모든 세그먼트 태그 P를 받는 등 지정된 태그의 컬렉션을 필터링하는 데 사용합니다.(3) Item(항목): 집합 중의 어떤 원소를 선택하는데 사용한다. 예를 들어object.item(0)은 집합된 첫 번째 원소를, object.item(i)는 i+1개의 원소를 선택한다.
그 밖에 IHTMLElement도 웹 페이지에 지정된 표지의 집합을 대표하는 집합 대상이다. 이 집합 대상을 통해 웹 페이지에 특정한 표지의 내용을 얻을 수 있다. IHTMLElement는 네 가지 주요 속성이 있다. (1) InnerText: 시작 표지와 끝 표지 사이의 문서.(2) InnerHTML: 시작 태그와 끝 태그 사이의 텍스트와 HTML;(3) OuterText: 객체의 텍스트,(4) OuterHTML: 객체의 텍스트 및 HTML.
procedure TForm1.Button1Click(Sender: TObject);
var
Doc:IHTMLDocument2;
input:OleVariant;
userinputelement,pwdinputelement:ihtmlinputelement;
begin
doc:=webbrowser1.document as ihtmldocument2;
userinputelement:=(doc.all.item('user'( ),0) as ihtmlinputelement);
userinputelement.value:=edit1.text;( )
pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement);
pwdinputelement.value:=edit2.text;
input:=doc.all.item('submit',0);
input.click;
end;
데이터 제출 버튼에 NAME 속성이 없으면 다음과 같이 하십시오.
procedure TForm1.Button1Click(Sender: TObject);
var
Doc:IHTMLDocument2;
form:ithmlformelement;
userinputelement,pwdinputelement:ihtmlinputelement;begin
doc:=webbrowser1.document as ihtmldocument2;
userinputelement:=(doc.all.item('user'( ),0) as ihtmlinputelement);
userinputelement.value:=edit1.text;( )
pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement);
pwdinputelement:=edit2.text;
form:=(doc.all.item('login_form',0) as ihtmlformelement):
form.submit;
end;
로그인 버튼은 일반적으로 웹 페이지에서 기본적으로 리턴 버튼이기 때문에 앞의 클릭 버튼을 위 코드로 대체할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Delphi] TStringBuilder그리고 꼭 사용해야만 할까? 그림처럼 Heap 영역에 "Hello" 공간을 생성하고 포인팅을 한다. "Hello World" 공간을 새로 생성한 후 포인팅을 하게 된다. 결국 "Hello" 라는 String 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.