Имя: Пароль:
1C
 
v7: 1cv7 vs InternetExplorer.Application
0 exellent
 
21.09.08
21:40
Задача : из 1с открываем страничку, перебираем ссылки, на нужной эмулируем Click...не открыватца ... какой метод использовать ?

Процедура sleep(ms)
   стр="Ожидание "+ТекущееВремя();
   Состояние(стр);
   сек=цел(ms/1000);
   ВвестиСтроку(стр, стр, 100, 0, сек);
КонецПроцедуры    

Процедура Выполнить()  
   True=-1;
   False=0;
   oIE = CreateObject("InternetExplorer.Application");
   oIE.Visible=True;
   oIE.Navigate("www.mypage.ru");
   
   While oIE.Busy()=True Do
       sleep(1000);
   EndDo;
   
   doc1=oIE.Document;  
   
   obj1_=doc1.links;  
   чДочернихЭлементов1=obj1_.length();
   Для i1=0 по чДочернихЭлементов1-1 Цикл  
       obj1=obj1_.item(i1);
       
       strText = СокрЛП(obj1.InnerHTML);
       //Сообщить("Название ссылки: "+strText);
       
       attr= obj1.attributes.getNamedItem("href");
       strUrl = attr.NodeValue;
       //Сообщить("Адрес ссылки: "+strUrl);
       
       Если strText="моя ссылка" Тогда
       // далее нужна эмуляция клика по ссылке ??????????
           
           
       КонецЕсли
       
       
   КонецЦикла
   
КонецПроцедуры
1 Яндекс
 
21.09.08
22:10
кликать то нафига... находи ссылку и открывай сызнова...


http://www.1c-club.kz/index.php?showtopic=765
2 Яндекс
 
21.09.08
22:13
Если strText="моя ссылка" Тогда
oIE.Navigate(strText);
КонецЕсли
3 exellent
 
21.09.08
22:37
Нет , нужна именно эмуляция клика : вид ссылки
<A onclick=javascript:reloadpage(10) href="http://www.xxxxxxxxxx11" target=_ptc><IMG alt=ХХХХ src="http://www.xxxxxxxxxxxxx222" border=0></A>
Если использовать Navigate по URL http://www.xxxxxxxxxx11, то естественно событие javascript:reloadpage(10) не происходит.
4 Табуретка
 
22.09.08
09:34
(0)если не секрет - генератор кликов ваяем?
5 exellent
 
22.09.08
11:16
Что-то вроде того...
по следуещему методу "FireEvent "onclick"
не подскажите ???
6 dk
 
22.09.08
11:21
делаю подобную задачку, но там клиент банк и html разбор не рулит.
пока через эмуляцию клавы и мыши работает, но все привязано к разрешению экрана :(
7 exellent
 
22.09.08
12:02
В том то и дело ,что ссылка может "плавать по экрану", каждый раз находясь в новом месте.Методы "FireEvent "onclick",click :несколько туманно расписаны для InternetExplorer.Application , никак не могу прикрутить !
8 smaharbA
 
22.09.08
12:09
Както так

скрипт=СоздатьОбъект("MSScriptControl.ScriptControl")
скрипт.language="javascript";
Документ=ie.document;
скрипт.AddObject("Документ",Документ);
Ссылки=Документ.getElementsByTagName("a");
скрипт.AddObject("Ссылки",Ссылки);
Для к=0 По Ссылки.length-1 Цикл
 Если Ссылки.item(к).href="http://www.xxxxxxxxxx11" Тогда
   скрипт.Eval("Ссылки.item("+к+").click()");
   Прервать;
 КонецЕсли;
КонецЦикла;
9 exellent
 
22.09.08
14:01
Жаль что на ="javascript";
хотелось бы без него ...
не знаю к чему прикрутить метод .click()

линки все выдрали,
Для i1=0 по чДочернихЭлементов1-1 Цикл  
       obj1=obj1_.item(i1);
для каждого линка имеем
.obj1.InnerHTML  название линка
.attributes.getNamedItem("href");
       strUrl = attr.NodeValue;
сам url

А к чему привинтить метод .click()????

obj1.  не идёт ???
10 smaharbA
 
22.09.08
15:09
//*******************************************
Процедура Сформировать()
   УРЛ="http://forum.mista.ru";
   Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
   Скрипт.language="javascript";
   ИЕ=СоздатьОбъект("InternetExplorer.Application");
   ИЕ.Navigate(УРЛ);
   Пока ИЕ.ReadyState<4 Цикл
       ВвестиСтроку("Ждем..","Ждем..",10,,1);
   КонецЦикла;
   Документ=ИЕ.document;
   Ссылки=Документ.links;
   НашаСсылка="http://www.forum.mista.ru/index.php?forum=life";
   Для к=0 По Ссылки.length-1 Цикл
       Если Ссылки.item(к).attributes.getNamedItem("href").NodeValue=НашаСсылка Тогда
           НашаСсылка=Ссылки.item(к);
           Скрипт.AddObject("НашаСсылка",НашаСсылка);
           Прервать;
       КонецЕсли;
   КонецЦикла;
   Если ТипЗначенияСтр(НашаСсылка)<>"Строка" Тогда
       Скрипт.Eval("НашаСсылка.click()");
   КонецЕсли;
   Сообщить(Ссылки.length);
   ИЕ.visible=-1;
КонецПроцедуры
11 exellent
 
23.09.08
15:39
Спасибо огромное, скриптик работает !!!
12 exellent
 
23.09.08
15:43
Но всё же интересно, как совершить тоже самое через OLE,без использования MSScriptControl.ScriptControl ?
Ошибка? Это не ошибка, это системная функция.