1 (изменено: Botsy, 2021-06-27 22:15:48)

Тема: JS: Input Value

На сайте интернет магазина "dns", оформляя заказ надо вводить данные https://www.dns-shop.ru/checkout/. Обычно в форму получалось вписать значение получив id элемента и изменив value:


document.querySelector("#ir-8a5cu").value = "+7 505 555-55-55";

А тут оно вписывает значение, но только визуально, т.е. как бы и не вписывает на самом деле. После активации поля input, всё пропадает.
https://i.ibb.co/7N1VGX1/input.png

Подскажите что не так?

GD

2

Re: JS: Input Value

Гуглите про вызовы событий.
Наверняка input либо change нужно вызывать.

3 (изменено: Botsy, 2021-06-28 16:08:17)

Re: JS: Input Value

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


"document.querySelector(...).input is not a function"

https://i.ibb.co/7gR1mPP/input2.png

GD

4

Re: JS: Input Value

Тут почитайте.
https://www.autohotkey.com/boards/viewtopic.php?t=68734

5

Re: JS: Input Value

Методы описанные в ссылке - я уже пробовал, результат такой же как и при обычном set value. Оно вписывает значение, но как бы поверх.
https://i.ibb.co/8dQQTXW/input3.png

Может там как-то сделано специально от автоматического ввода, ну остаётся вариант кликать и вводить не через хром, а через обычный click + send.

GD

6

Re: JS: Input Value

Не знаю, как вы там делаете, но у меня с input работает.
Учите матчасть.

7

Re: JS: Input Value

ну получилось каким-то таким способом сделать:


var main = document.querySelector("#ir-19qf4");
main.value = "+79211629674";
let event = new Event("input");
main.dispatchEvent(event);

Так и не понял почему это работает. Почему событие click, можно вызвать написав так:


let test = document.querySelector('a.warning');
test.click();

, а другие события надо отдельно делать через встроенный класс Event.

GD

8

Re: JS: Input Value

Так и не понял почему это работает. Почему событие click, можно вызвать написав так...

Ошибаетесь. Попробуйте кликнуть на кнопку Capture test тут:
http://help.dottoro.com/external/exampl … down_4.htm

9

Re: JS: Input Value

Не работает. Там вообще нет ивента click, но есть ивент mousedown. И через класс Event тоже не работает. А как надо?


var main = document.querySelector("#testButton");
let event = new Event("mousedown");
main.dispatchEvent(event);
GD

10

Re: JS: Input Value

mousedown поменять на mouseup.

11 (изменено: Botsy, 2021-06-28 18:21:26)

Re: JS: Input Value

Вот так сработало).


var main = document.querySelector("#testButton");
let event = new Event("mousedown");
main.dispatchEvent(event);
let event1 = new Event("mouseup");
main.dispatchEvent(event1);
let event2 = new Event("click");
main.dispatchEvent(event2);
GD

12

Re: JS: Input Value

Ради интереса можете попробовать такую задачку.
Послать клик на кнопку, чтобы сразу отобразилось 10 нажатий.
https://yari-demos.prod.mdn.mozit.cloud … mples.html

13 (изменено: Botsy, 2021-06-28 21:11:01)

Re: JS: Input Value

Ну пока только 1 клик почему-то.


var main = document.querySelector("button");
let event = new MouseEvent("click");
let i = 0;
while (i < 5) {
main.dispatchEvent(event);
i++;
}

UPD:
Не знаю как сделать отладку или типо того, что бы узнать что именно происходит и почему работает не так, как надо.


function clickButton() {
            let main = document.querySelector("button");
            let event = new MouseEvent("click"); 
             main.dispatchEvent(event);
        }
  setInterval(clickButton, 500);

Оно кликает, но счетчик всегда показывает Click count: 0

GD

14

Re: JS: Input Value

Я тоже не догадался, только так вышло:

(() => {
    const button = document.querySelector('button');
    let counter = 0;
    const timer = setInterval(() => {
        const event = new CustomEvent('click', { detail: ++counter });
        button.dispatchEvent(event);
        if (counter == 10)
            clearInterval(timer);
    }, 50);
})();
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15

Re: JS: Input Value

Только таймер не нужен.
Можно сразу в detail любое число указывать.

16

Re: JS: Input Value

А, я-то думал, что есть какой-то хитрый способ обычный эвент click послать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17

Re: JS: Input Value

Пробовал с событием наведения на элемент. Есть элемент, наводим на него мышкой - всплывает окно.
https://i.ibb.co/LRHMyK9/mouseover.gif

Через


$0;
monitorEvents($0);

, посмотрел какие события срабатывают.
https://i.ibb.co/WpLq9PG/monitor.png

Тут mouseover. Делал разными вариантами, но окошко не всплывает.


var main = document.querySelector(".cart-link__price");
let event1 = new MouseEvent("mouseover", {bubbles: true});
let event = new MouseEvent("mousemove", {bubbles: true});
main.dispatchEvent(event);
main.dispatchEvent(event1);

Создаю объект события движения мышки на элемент -> потом объект события над элементом -> запускаю последовательно эти события. Не понимаю почему не правильно и что я делаю не так. На кнопке "купить" - это работает (после этого кода она подсвечивается).
https://i.ibb.co/qnSx7WY/buy.png

GD

18

Re: JS: Input Value

А зачем вообще это надо?

19

Re: JS: Input Value

А, это я хочу автоматически купить какой-нибудь товар.

GD

20

Re: JS: Input Value

Чтобы купить товар не нужен клик.
Достаточно перейти в checkout.

21

Re: JS: Input Value

https://yandex.ru/search/?text=%D0%B1%D … p;lr=10742

22 (изменено: Botsy, 2021-06-29 22:05:14)

Re: JS: Input Value

Malcev Не достаточно. Допустим я добавил товар, перешел к оформлению, а потом передумал и захотел другой товар. Вернувшись на выбор товара я удалю старый из корзины, а потом закину новый. И вот если я перейду на checkout по ссылке из строки - то там будет старый товар. Не знаю почему. Что бы этого не было, приходится нажимать через это всплывающее окно или через корзину.

ypppu По ссылке там нет помощи в вопросе. Использовать чужие боты я не хочу, хочу сам научиться.

GD

23

Re: JS: Input Value

ypppu, в чем только смысл втридорога брать?
Германия - наше всё.

24

Re: JS: Input Value

Botsy пишет:

Использовать чужие боты я не хочу, хочу сам научиться

Если долго мучаться, что-то да получится.

25

Re: JS: Input Value

Malcev Так да, только это, а что у меня не правильно в коде?)

GD

26

Re: JS: Input Value

Не знаю. Лень проверять.
Возможно скрипт проверяет свойство istrusted.

27

Re: JS: Input Value

Ладно не суть, решил обходным путем через корзину.

GD