powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA & HTML. Помогите получить ссылку к форме.
8 сообщений из 8, страница 1 из 1
VBA & HTML. Помогите получить ссылку к форме.
    #34441790
Gelo_R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, что делаю не так. Сканирую HTML Document этой програмкой. ищу на нем все формы. Перебираю рекурсивно фреймы. Ну никак не нахжу нужную мне форму с полями... Нужно добраться до всех "инпут" и передавать им мои значения из ВБА. Подскажите, кто чем может.

Public Sub HDocAnaliz(HDoc As HTMLDocument, OffSet As String)
Dim HDoc1 As HTMLDocument
Dim HFrm As HTMLFormElement, HEl As IHTMLInputElement, HFEl As IHTMLFormElement ' IHTMLElement
Dim HElCol As IHTMLElementCollection
On Error Resume Next
Debug.Print OffSet; "BEGIN ======================"
Debug.Print OffSet; "Frames"; HDoc.frames.Length; " Forms"; HDoc.forms.Length
Debug.Print "URL "; HDoc.URL
Debug.Print "Title "; HDoc.Title

On Error Resume Next
Set HElCol = HDoc.all.tags("input")
For Each HEl In HElCol
Debug.Print HEl.Name
Debug.Print HEl.form
Debug.Print HEl.Type
Debug.Print HEl.Value
'Next HEl

On Error GoTo NoFrame
For i = 0 To HDoc.frames.Length - 1
Debug.Print OffSet; "frame="; i; " "
Debug.Print OffSet; "frame="; HDoc.frames(i).Name; " "
Set HDoc1 = HDoc.frames.Item(i).document
On Error Resume Next
Call HDocAnaliz(HDoc1, OffSet & "-")
Set HDoc1 = Nothing
Next i
NoFrame:
On Error Resume Next
For Each HFrm In HDoc.forms
For Each HEl In HFrm.elements
Debug.Print OffSet; "Form"; " "; HFrm.Name; " "; HEl.Name; " "; HEl.Title; " = "; HEl.Value
Next HEl
Next HFrm


'For i = 0 To HDoc.all.Length
' Debug.Print HDoc.all.Item(i).tagName
' Debug.Print HDoc.all.Item(i).Name
' Debug.Print HDoc.all.Item(i).Value
'Next i
Debug.Print OffSet; "END ======================"
End Sub
...
Рейтинг: 0 / 0
VBA & HTML. Помогите получить ссылку к форме.
    #34442404
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дай ссылку что ли, которую колбасишь... В процедуре криминала вроде нет. Как, кстати, и форматирования.
...
Рейтинг: 0 / 0
VBA & HTML. Помогите получить ссылку к форме.
    #34442633
Gelo_R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению страница запоролена. И построена со множеством фреймов. Ее даже сохранить нельзя толком. Могу выслать HTML-код этих фреймов. Это поможет? В нем есть нужная мне форма. Но незнаю как до нее добраться...
Я толком даже не знаю, где могут находится формы, могут ли контролы существовать вне форм. Какие есть способы обращения к этим контролами...
...
Рейтинг: 0 / 0
VBA & HTML. Помогите получить ссылку к форме.
    #34442664
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HTML-код не надо. Лучше поищи в инете страницы с фреймами и инпутами, будем их смотреть. А для начала попробуй Set HElCol = HDoc.getElementsByTagName("input")
вместо Set HElCol = HDoc.all.tags("input")
...
Рейтинг: 0 / 0
VBA & HTML. Помогите получить ссылку к форме.
    #34443555
Gelo_R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я уже пробывал и так и сяк. Код вооще вроде как в нужный фркйм не заходит. И формы соответствено не видит. С другими страничками с фреймами вроде получается. А с этой - ну никак.
Остается только искать еще какую нибудь страничку с которой мой код не работает...
...
Рейтинг: 0 / 0
VBA & HTML. Помогите получить ссылку к форме.
    #34444794
Gelo_R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скачал програмку - IEWebDeveloperV2.exe. Она просматривает объекты HTML документа.
Действительно, в один фрейм - не заходит. Говорит, что он имеет значение нулл или это не объект. Может кто нибудь знает как это могло получиться и как этот момент можно обойти? Робоформ все таки нужные поля видит!
...
Рейтинг: 0 / 0
VBA & HTML. Помогите получить ссылку к форме.
    #34445157
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может src этого фрейма ведет на другой сайт?
...
Рейтинг: 0 / 0
VBA & HTML. Помогите получить ссылку к форме.
    #34445265
Gelo_R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашол в чем именно проблема.
Вот страничка. Объявлено 2 фрейма. Второй разбит еще на 2. Нужно правильно научиться перебирать эти фреймы.
==============================
<html>
<head>
<title>GSPN - UA10_PF_MOCHNA/Ukraine</title>
</head>
<!-- PKL //-->
<frameset name="FR_Perent" rows="50,*">
<frame src="file://D:\Report\B2B\B_myinfo.gif" name="FR_Top">
<frameset name="FR_Ch" cols="40%,*">
<frame src="http://www.mail.ru" name="FR_L">
<frame src="http://www.mail.ru" name="FR_R">
</frameset>
</frameset>
</html>
=============================

В моей процедуре что-то нетак...
=============================
Public Sub F1()
Dim objShell As New Shell32.Shell
Dim objBrowser As SHDocVw.WebBrowser
Dim objHTMLDocument As MSHTML.HTMLDocument
Dim sURL As String

For Each objBrowser In objShell.Windows
If StrComp(Right(objBrowser.FullName, 12), "iexplore.exe", vbTextCompare) = 0 Then
If TypeName(objBrowser.document) = "HTMLDocument" Then
Set objHTMLDocument = objBrowser.document
Debug.Print objHTMLDocument.Title, objHTMLDocument.URL
sURL = "file://D:\Report\B2B\EP_Default1.html"
'sURL = "http://cis.samsungportal.com/EP/web/portal/jsp/EP_Default1.jsp"
'sURL = "http://cisgspn.samsungportal.com/GSPN/gspn/service/SVCCreateCall.jsp?pgmId=SVCCall"
If objHTMLDocument.URL = sURL Then
Set HDoc = objHTMLDocument
Exit For
End If
End If
End If
Next
Call HDocAn1(HDoc, "-")
End Sub

'-------------------------------
Public Sub HDocAn1(HDoc As IHTMLDocument2, OffSet As String)
Dim i
'On Error Resume Next
Debug.Print OffSet; "BEGIN ==="
Debug.Print OffSet; "URL "; HDoc.URL
Debug.Print OffSet; "Title "; HDoc.Title
Debug.Print OffSet; "Frames"; HDoc.frames.Length; " Forms"; HDoc.forms.Length

On Error GoTo NoFrame

For i = 0 To HDoc.frames.Length - 1
Debug.Print OffSet; "frame="; i
Debug.Print OffSet; "frameName="; HDoc.frames(i).Name
Call HDocAn1(HDoc.frames(i).document, OffSet & "-")
Next i

NoFrame:
Debug.Print OffSet; "END ==="
End Sub
=============================
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA & HTML. Помогите получить ссылку к форме.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]