нахождение какой формы поля ввода принадлежит delphi - PullRequest
0 голосов
/ 13 февраля 2011

Следуйте за моим предыдущим вопросом, на который я смог ответить сам. Я могу разместить текст в поле ввода на веб-сайте, обслуживаемом веб-браузером, в приложении Delphi. иногда на сайте есть несколько форм, в большинстве случаев их около 2, но это может привести к очень немногим. Теперь мой вопрос Как я могу «проверить» или выяснить, к какой форме относится выбранное поле ввода? Давайте просто возьмем пример. Например, на gmail.com есть 2 поля ввода: «Электронная почта» и «Passwd». Я также знаю, что на этом сайте есть 2 формы. с таким кодом вы можете выбрать любой из них:

doc:=webbrowser1.Document as IHTMLDocument2;
frm:=doc.forms.item(0,EmptyParam) as IHTMLFormElement;
fld:=frm.item('Email',EmptyParam) as IHTMLInputTextElement;
fld.value:=GetFieldValue(theForm,'test@gmail.com');

, изменив 0 на 1 во второй строке, вы получите вторую форму на сайте. Теперь я хочу знать, как я могу позволить программе выяснить, к какой форме относится и поле ввода. Вы могли бы сделать это с попыткой? или что-нибудь еще? Кто-нибудь есть идеи?

1 Ответ

2 голосов
/ 13 февраля 2011

fld.form указывает на форму, которой принадлежит элемент. Вы можете использовать doc.getElementFromId или любой другой метод, который вам нравится, чтобы получить элемент, не используя форму для его получения, хотя это проще всего, если у него есть идентификатор.

Другим вариантом является поиск во всех формах, чтобы проверить, имеет ли оно поле с заданным именем, но это не поможет, если поле существует более чем в одной форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...