Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка при использовании ie.document.getelementbyid / 3 сообщений из 3, страница 1 из 1
22.06.2016, 17:06
    #39260585
Damasevich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при использовании ie.document.getelementbyid
Добрый день!
Подскажите пожалуйста почему предпоследняя строка вызывает ошибку Object required как будто такого элемента на сайте нет. Хотя он есть
Собственно нужна именно эта команда, команда выше написана просто чтобы удостовериться что я использую getelementbyid корректно.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate ("http://www.nopriz.ru/nreesters/elektronnyy-reestr")
Do Until ie.ReadyState = 4
    DoEvents
Loop
ie.Document.getelementbyid("title-search-input").Value = 1111
ie.Document.getelementbyid("admin_statement_type_inn").Value = 2222
Set ie = Nothing
...
Рейтинг: 0 / 0
22.06.2016, 18:36
    #39260681
Х.3,
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при использовании ie.document.getelementbyid
Damasevich,

Подскажите пожалуйста почему предпоследняя строка вызывает ошибку Object required
выводи на экран строки в цикле (или пиши в файл - если много), загибай пальцы (или нумеруй в файле), считай и смотри, тогда и узнаешь - сколько строк на самом деле, и что в них, и почему, - возможно предпоследняя строка является таковой только в твоем воображении
...
Рейтинг: 0 / 0
24.06.2016, 13:06
    #39261750
Диам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при использовании ie.document.getelementbyid
Несмотря на то, что вы вызываете цикл пока страница не загрузится - вполне может быть, что вы из цикла выйдете, а элементы еще не все будут загружены.
Я для этого специально делал такую функцию


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Public Function IE_WaitForCtrl(ie As Object, NameCtl As String, Optional WaitSec As Integer = 5) As Boolean
  Dim vDt As Date
  Dim f As Object 'HTMLTextElement
  vDt = Now
  If ie Is Nothing Then Exit Function
  On Error Resume Next
  Do
    Set f = ie.Document.getElementsByName(NameCtl).Item(0) '.all(NameCtl)
    If err.number = 462 Then 'The remote server machine does not exist or is unavailable
      err.Clear
      GoTo mEx
    End If
    If f Is Nothing Then
      DoEvents
      If DateDiff("s", vDt, Now) > WaitSec Then
        Dim ans As Long
        ans = MsgBox("Время ожидания истекло! Подождать еще " & WaitSec & " секунд?", vbQuestion + vbYesNoCancel + vbSystemModal, NameApp)
        If ans = vbCancel Then
          GoTo mEx
        ElseIf ans = vbNo Then 'выход как будто Експлорер не занят
          Exit Do
        End If
        vDt = Now
      End If
    'Else: f.innerText = "test"
    End If
  Loop While f Is Nothing
  
Success:
  IE_WaitForCtrl = True
  
mEx:
  
End Function
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка при использовании ie.document.getelementbyid / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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