Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сохранение формы после ввода значения (https://javascript.ru/forum/dom-window/81737-sokhranenie-formy-posle-vvoda-znacheniya.html)

Dmitrywrx 21.01.2021 03:05

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

Являясь программистом 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" меняет значение и при программном изменении фокуса, и при нажатии мышью.

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

voraa 21.01.2021 08:36

Не совсем понятно это
Цитата:

Сообщение от Dmitrywrx
после сохранения, при переходе на эту же страницу, значение цены остается прежним!

Что и где сохраняется? Вставленное значение в БД?
Куда вы выходите и откуда переходите снова на страницу?

Цитата:

Сообщение от Dmitrywrx
Но вот сохранения значения в момент убирания фокуса не происходит.

Сохранения где?

Dmitrywrx 22.01.2021 02:19

Цитата:

Сообщение от voraa
Что и где сохраняется? Вставленное значение в БД?
Куда вы выходите и откуда переходите снова на страницу?

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

Цитата:

Сообщение от Dmitrywrx
Но вот сохранения значения в момент убирания фокуса не происходит.

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

voraa 22.01.2021 06:56

При ручном вводе при изменении каждого символа происходит событие input, а при потери фокуса, еще и событие change. Если просто программно менять значения, то эти события не возникают.
Вероятно там программа реагирует именно на эти события.

Dmitrywrx 22.01.2021 10:02

Т.е. ситуация безвыходная? Или как-то все-таки можно программно поменять так, чтобы значения потом сохранились?

Dmitrywrx 22.01.2021 10:04

Думаю важную роль тут играет событие Change. Как можно посмотреть что должно происходить при этом событии?

voraa 22.01.2021 10:36

Вы ИЕ используете?
Как в нем - не знаю.

Dmitrywrx 22.01.2021 10:53

Цитата:

Сообщение от voraa
Вы ИЕ используете?

Да, его самого.


Часовой пояс GMT +3, время: 14:51.