Страницы: 1
RSS
Работа с браузером
 
Sub info()  
Dim oIE As Object  
Set oIE = CreateObject("InternetExplorer.Application")  
oIE.Visible = 1    
oIE.navigate ("yandex.ru")  
Do While oIE.busy Or (oIE.readyState <> 4): DoEvents: Loop    
Application.Wait Now + 1.5 / 86400  
oIE.document.forms(0).elements(0).Value = "111"    
End Sub  
 
Данный код прекрасно работает на 2-ух системах: 1)Windows XP 32bit Office 2007, 2)Windows 7 64bit Office 2007. Т.е. в поисковую строку Yandex вводится 111.  
 
Если же подставить интересующий меня сайт, и соответственно другой элемент, то код исполняется лишь на первой системе. На семерке же код отчего-то выдаёт ошибку:  
Run-time error ‘-2147417848 (80010108)’:  
 
Automation error  
The object invoked has disconnected from its clients.  
 
Отчего так - думается из-за библиотек или из-за битности системы. Но не пойму, почему в первом случае с Yandex всё работает прекрасно. Был бы премного благодарен, если бы указали куда копать или подсказали решение.
 
попробуйте так:  
 
Sub info()  
Dim oIE As Object  
Set oIE = CreateObject("InternetExplorer.Application")  
oIE.Visible = 1  
txtstr = "111"  
oIE.navigate ("http://www.yandex.ru/yandsearch?clid=9582&text=" & txtstr)  
End Sub  
 
это для яндекса.  
 
для вашего сайта - вбивайте в соответствии с форматом его поисковой строки
 
Нет, так реализовать не получится. Там обычные поля для логина и пароля.
 
а на какой строке выдает ошибку?
 
На oIE.navigate ("yandex.ru"). При чём в случае Яндекса ничего не говорит.
 
Простите - вру.  
oIE.document.forms(0).elements(0).Value = "111"    
На этой строке. И в случае Яндекса ничего не говорит.
 
а вы уверены что elements(0) - это именно окошко для ввода???  
добавьте  
for i = 0 to oIE.document.forms(0).elements.length-1  
debug.print oIE.document.forms(0).elements(i).name  
next i
 
Ну там не 0, а 5. Но не суть, я повторюсь - на первой системе код прекрасно работает, вводит логин и пароль и жмакает по ОК. На второй же работает только код с яндексом, а на требуемом сайте ни в какую.
 
скорей всего причина в Internet Explorer  - у меня семерки 64 нет, так что не могу ничего сказать более подробно. Попробуйте управлять страничкой через элемент формы webbrowser - может поможет.
 
Та же проблема, через WebBrowser не понимает указаний на элемент в любом виде на 7-ке 64 бит. На ХР всё нормально
 
Та же проблема, через WebBrowser не понимает указаний на элемент в любом виде на 7-ке 64 бит. На ХР всё нормально
 
Боюсь дело в библиотеке. С другой стороны не понимаю, почему на Яндексе работает.
 
мне показалось или кто-то удалил мой пост из данной темы?
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Ну я вашего сообщения не видел.
 
{quote}{login=nerv}{date=03.08.2012 09:57}{thema=}{post}мне показалось или кто-то удалил мой пост из данной темы?{/post}{/quote}А он был? Я ничего не удалял :-)
 
Проблема решилась. На ХР, чтобы файлы после авторизации закачивались без вслывающего окна устанавливал домены в Надёжные узлы и включал закачку без запроса. На 7-ке сделал это также, что почему-то и привело к отключению навигации через вба. Хотя всё, что можно в настройках разрешил и включил. Вытащил из надёжных, заработало нормально. Только теперь надо будет решить проблему со всплывающим окном о запросе загрузки. Может кто-нибудь знает, как в IE9 разрешить с определенного домена закачку без запроса?
 
Прекращение блокировки панелью информации загрузки файлов и программ  
 
Откройте Internet Explorer.    
Нажмите кнопку Сервис и выберите команду Свойства обозревателя.    
На вкладке Безопасность нажмите кнопку Другой.    
Выполните одно или оба следующих действия.    
Чтобы отключить использование панели информации при загрузке файлов, прокрутите список до раздела Загрузка и в группе Автоматические запросы на загрузку файлов щелкните Включить.    
Чтобы отключить использование панели информации для элементов ActiveX, прокрутите список до раздела списка Элементы ActiveX и модули подключения и в группе Автоматические запросы элементов управления ActiveX щелкните Включить.    
Нажмите кнопку ОК, затем Да, чтобы подтвердить необходимость изменения, и снова нажмите ОК.
 
Да, это возможно в восьмёрке, но не в девятке. В девятке этот пункт убрали вовсе. Не стал морочиться с этой версией, откатился до 8-ки. Всем спасибо, тему можно закрывать.
Страницы: 1
Наверх