Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.01.2021, 03:05
Новичок на форуме
Отправить личное сообщение для Dmitrywrx Посмотреть профиль Найти все сообщения от Dmitrywrx
 
Регистрация: 21.01.2021
Сообщений: 5

Сохранение формы после ввода значения
Уважаемые форумчане, всем привет.
Есть сайт, на который с определенной периодичностью приходится заходить и редактировать данные. А точнее устанавливать актуальные цены. Доступ к сайту только с пользовательской точки зрения. Заходим через логин/пароль в браузере.

Являясь программистом 1С, с целью автоматизации процесса, пишу обработку, которая будет делать это в автоматическом режиме.

Суть в следующем. Нужно зайти на сайт, найти нужное поле цены, изменить его и нажать на кнопку "Сохранить".
По описанию все реализовано следующим образом:

objIE = Новый COMОбъект("InternetExplorer.Application");
objIE.Navigate("https://www.Сайт.ru/");
Document_ = objIE.Document;
priceCom = Document_.getElementsByClassName("bzr-form-control bulletin_adding__field__input");
ТекущаяСтрока = priceCom.Item(2);
ТекущаяСтрока.focus();
ТекущаяСтрока.select();
ТекущаяСтрока.setAttribute("value", Строка(Строка.ПлановаяЦена ));
Кнопка = Document_ДляИзмененияЦены.getEleme ntsByClassName("button bigbutton ulletin_adding__submit__button").Item(0);
Кнопка.focus();
Кнопка.Click();


И все вроде бы отрабатывает:
- значения меняются (и в отладчике, и визуально на странице сайта)
- кнопка нажимается

НО после сохранения, при переходе на эту же страницу, значение цены остается прежним!

Если делать все в ручную, то я захожу на сайт, ввожу значение в поле "Цена", и при изменении фокуса на другой элемент, либо при снятии фокуса с текущего, происходит автоматическое сохранение значения.

Если же делать все программно, то поле активируется, цена изменяется и даже активируется другой элемент. Но вот сохранения значения в момент убирания фокуса не происходит.
Если после программного изменения значения, мышью ткнуть на другое поле, то сохранение происходит.

При этом свойство "ActiveElement" меняет значение и при программном изменении фокуса, и при нажатии мышью.

Такое ощущение, будто программно фокус устанавливается как-то не так. Не до конца активизирует элемент или что-то в этом роде.
Будьте добры, подтолкните мои мысли в нужном направлении...

Последний раз редактировалось Dmitrywrx, 21.01.2021 в 03:08.
Ответить с цитированием
  #2 (permalink)  
Старый 21.01.2021, 08:36
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Не совсем понятно это
Сообщение от Dmitrywrx
после сохранения, при переходе на эту же страницу, значение цены остается прежним!
Что и где сохраняется? Вставленное значение в БД?
Куда вы выходите и откуда переходите снова на страницу?

Сообщение от Dmitrywrx
Но вот сохранения значения в момент убирания фокуса не происходит.
Сохранения где?
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2021, 02:19
Новичок на форуме
Отправить личное сообщение для Dmitrywrx Посмотреть профиль Найти все сообщения от Dmitrywrx
 
Регистрация: 21.01.2021
Сообщений: 5

Сообщение от voraa
Что и где сохраняется? Вставленное значение в БД?
Куда вы выходите и откуда переходите снова на страницу?
Нажимаю "Кнопка.Click();".
Эта кнопка выводит из режима редактирования объявления и возвращает на саму страницу объявления. Если вводить цену в ручную, то новая цена появится в объявлении. Если программно, то после изменения и перехода - отображается старая цена. Как я понял эта кнопка просто выводит из режима редактирования. А вот сохранение значения происходит в момент редактирования(если оно долго, то с определенной периодичностью), а так же в момент изменения фокуса с редактируемого элемента на другой.

Сообщение от Dmitrywrx
Но вот сохранения значения в момент убирания фокуса не происходит.
Здесь ситуация следующая:
- Если редактировать поле в ручную на сайте: после изменения цены, и снятия фокуса с элемента ввода, происходит сохранение данных. Не знаю куда, но куда-то они видимо сохраняются. Об этом свидетельствует появляющаяся анимированная пиктограмма, которая мигает в течении секунды-полутора секунд.
- Если же изменять цену программно и потом перемещать фокус на другой элемент, то эта пиктограмма не появляется.
Ответить с цитированием
  #4 (permalink)  
Старый 22.01.2021, 06:56
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

При ручном вводе при изменении каждого символа происходит событие input, а при потери фокуса, еще и событие change. Если просто программно менять значения, то эти события не возникают.
Вероятно там программа реагирует именно на эти события.
Ответить с цитированием
  #5 (permalink)  
Старый 22.01.2021, 10:02
Новичок на форуме
Отправить личное сообщение для Dmitrywrx Посмотреть профиль Найти все сообщения от Dmitrywrx
 
Регистрация: 21.01.2021
Сообщений: 5

Т.е. ситуация безвыходная? Или как-то все-таки можно программно поменять так, чтобы значения потом сохранились?
Ответить с цитированием
  #6 (permalink)  
Старый 22.01.2021, 10:04
Новичок на форуме
Отправить личное сообщение для Dmitrywrx Посмотреть профиль Найти все сообщения от Dmitrywrx
 
Регистрация: 21.01.2021
Сообщений: 5

Думаю важную роль тут играет событие Change. Как можно посмотреть что должно происходить при этом событии?
Ответить с цитированием
  #7 (permalink)  
Старый 22.01.2021, 10:36
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Вы ИЕ используете?
Как в нем - не знаю.
Ответить с цитированием
  #8 (permalink)  
Старый 22.01.2021, 10:53
Новичок на форуме
Отправить личное сообщение для Dmitrywrx Посмотреть профиль Найти все сообщения от Dmitrywrx
 
Регистрация: 21.01.2021
Сообщений: 5

Сообщение от voraa
Вы ИЕ используете?
Да, его самого.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка формы только 1 раз, после чего что бы она стала не активна. rusaln917 Общие вопросы Javascript 5 10.07.2017 11:27
Как получить значения формы Grindelvald Общие вопросы Javascript 7 23.03.2015 02:33
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23
У элемента img внутри form пропадает событие после onsubmit формы Eugene Events/DOM/Window 2 18.06.2009 19:21
Передача фокуса из формы после ввода символа kuh Общие вопросы Javascript 2 08.03.2009 19:50