Имя: Пароль:
1C
1С v8
Програмное нажатие Кнопки в ПолеHTML
0 newtech
 
naïve
09.04.24
01:31
Подскажите почему не срабатывает программное нажатие кнопки, при включении события ПриНажатии в этой процедуре.

те. если событие ПолеHTMLПриНажатии НЕ включено, все отрабатывает без проблем.

<1c>&НаКлиенте
Процедура ЗаполнитьФорму()
    
    
    ОбъектДокумент = Элементы.ПолеHTML.Документ;
    //ОбъектФормы = ОбъектДокумент.forms[0]; // Получаем первую форму в документе
    Попытка
        ОбъектДокумент.getElementById("username").value = "login" ;  // Находим элемент по ID и прописываем значение
        ОбъектДокумент.getElementById("password").value = "123456" ;
       //ОбъектФормы.elements.username.value = "login"; // Заполняем поле формы
       //ОбъектФормы.elements.password.value = "123456"; // Заполняем поле формы
   Исключение
   КонецПопытки;
       
    ЭлементHTMLДокумента = ОбъектДокумент.querySelector("[type=""submit""]");
    ЭлементHTMLДокумента.click();
КонецПроцедуры
</1c>
1 newtech
 
naïve
09.04.24
02:54
(0) Хочу добавить, что авторизация этим способом мне известна и прекрасно работает.
&НаКлиенте
Процедура ОтправитьЗапросНаСайт(Команда)
ИнтернетПрокси = Новый ИнтернетПрокси(ИСТИНА);
СерверЗапроса = "demo.net";
ПортВременный = 443;
ПользовательЗапроса = "";
ПарольЗапроса = "";
ТаймаутЗапроса = 10;
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
АутентификацияОС = ЛОЖЬ;
СоединениеHTTP = Новый HTTPСоединение(СерверЗапроса, ПортВременный, ПользовательЗапроса, ПарольЗапроса, ИнтернетПрокси, ТаймаутЗапроса, ЗащищенноеСоединение, АутентификацияОС);
АдресРесурсаСПараметрами = "/ci/Settings/Clients?******************************************************";
ЗапросHTTP = Новый HTTPЗапрос(АдресРесурсаСПараметрами);
ТелоЗапросаСтрока = "";
КодировкаЗапроса = "";
ИспользоватьBOMЗапроса = ИспользованиеByteOrderMark.НеИспользовать;
ЗапросHTTP.УстановитьТелоИзСтроки(ТелоЗапросаСтрока, КодировкаЗапроса, ИспользоватьBOMЗапроса);
ЗапросHTTP.Заголовки.Вставить("Authorization", "Basic *************");
ЗапросHTTP.Заголовки.Вставить("Cookie", "********************************");
ОтветHTTP = СоединениеHTTP.ВызватьHTTPМетод("POST", ЗапросHTTP);
КодСостояния = ОтветHTTP.КодСостояния;
ТелоОтветаСтрока = ОтветHTTP.ПолучитьТелоКакСтроку();
ТелоОтветаДвоичныеДанные = ОтветHTTP.ПолучитьТелоКакДвоичныеДанные();

ПолеHTML = ТелоОтветаСтрока;
КонецПроцедуры
2 newtech
 
naïve
09.04.24
15:31
В общем сам же и отвечу , если в обработчике события ПолеHTMLПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка) выполняется условие

Если ДанныеСобытия.Anchor = Неопределено Тогда
Возврат;
то программное (ЭлементHTMLДокумента.click();) нажатие  не сработает.