3
A previous question은 다음 코드의 fld
이 nil
임을 보여줍니다.내 코드가 mail.com에서 로그인 양식 필드를 찾지 못하는 이유는 무엇입니까?
procedure TForm1.Button2Click(Sender: TObject);
var
doc: IHTMLDocument2;
frm: IHTMLFormElement;
fld: IHTMLInputTextElement;
begin
doc := webbrowser1.Document as IHTMLDocument2;
frm := doc.forms.item(0, EmptyParam) as IHTMLFormElement;
fld := frm.item('login', EmptyParam) as IHTMLInputTextElement;
나는 mail.com에가는 TWebBrowser를하고 난 이유 frm.item
반환 nil
을 궁금해하고있다. 그것은 내가 필드를 채울 수 없게 만든다. 다른 웹 사이트 (예 : gmail.com)에서 '로그인'대신 '이메일'을 입력하면 작동합니다.
페이지의 HTML에서 찾을 수 있기 때문에 필드의 이름이 '로그인'이라고 확신합니다 : <input type="text" name="login" id="login" class="text" ...>
.
이 대답을 받아 들여야합니다. –
은 2 일, 그러나 thx – dave123
* 양식 * 검색을 건너 뛸 수 있습니다. ID가 * login * 인 항목을 검색하면됩니다. 'id' 속성은 페이지에서 유일하다는 것을 보장합니다. 그래서 당신이 필요로하는 입력 필드의 ID라면, 페이지에 몇 개의 다른 폼이 있는지에 관계없이 직접 얻을 수 있습니다. 그게 [GolezTrol의 대답] (http://stackoverflow.com/questions/4985373/finding-which-form-the-input-field-belongs-to-delphi/4985395#4985395)에서 ['IHTMLDocument3 :: getElementFromID'] (http://msdn.microsoft.com/en-us/library/aa752543.aspx). –