Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Чтобы не увеличивать время всех пауз (delay) я прибавил время только для case 4У меня почему то скрипт заполнения адреса перестал сам подставлять город. Нужно щелкнуть на графу города, тогда подставляет. Как будто задержку надо сделать побольше, после добавления области.
Версия сайта РУ.
ps
let delayStep = 200; //ms
заменил на 500
всё ок.
case 4: //Ждем список областей, выбираем область
//пропустим несколько строк
return setTimeout(fillAddrFunc, delayStep);
case 4: //Ждем список областей, выбираем область
//пропустим несколько строк
return setTimeout(fillAddrFunc, delayStep * 2.5);
Новая напасть. Вот в таком состоянии зависает вход. Началось сегодня. Скрипт не двигает ползунок
У меня так-жеНовая напасть. Вот в таком состоянии зависает вход. Началось сегодня. Скрипт не двигает ползунок
Там ещё слайдер есть, который скрипт не проходит, новый, если часто разные акки с одного ip
А сегодня новая хрень, на ру версии проскакивает "неверный логин или пароль" и все зависает... На com все работает!Исправил скрипт логина для нового слайдера
В мобильной версии не работает. Слайдер не двигает. Очень неудобно из за этого купоны получать
у меня скрипт не заполнят поля, имеет значение какая выбрана страна и язык сайта ?Накидал для себя удобный скриптик для оплаты картой из заказов. Нужно дойти до вот этого окна и ждать заполнения
Посмотреть вложение 289353
JavaScript:// ==UserScript== // @name Aliexpress order card filler // @namespace http://tampermonkey.net/ // @version 0.3 // @description try to take over the world! // @author Andronio // @match https://shoppingcart.aliexpress.com/order/secondPayment.htm?cashierRequestToken=* // @grant none // @run-at document-idle // ==/UserScript== (function() { 'use strict'; setTimeout(cardFunc, 7000); async function cardFunc() { let myCard = '1234 5678 9012 3456, 2021/11, xxx, JOHN SMITH'; let cardNumber = document.getElementById('cardNum'); let cardHold = document.getElementById('cardHolder'); let dateExpire = document.getElementById('expires'); let codeCVC = document.getElementById('cvv'); let mass; mass = myCard.split(', '); setInput(cardNumber, mass[0]); setInput(cardHold, mass[3]); let date = mass[1].slice(5,7) + '/' + mass[1].slice(2,4); setInput(dateExpire, date); setInput(codeCVC, mass[2]); document.querySelector('input.next-checkbox-input').click(); // Снять галку await waitForElement('.save-card-info-confirm button:nth-child(1)', 500, 10); await waitForElement('.next-loading-tip', 500, 10); await waitForElement('.next-loading-tip', 500, 10, true); await sleep(200); document.querySelector('.save-card-info-confirm button:nth-child(1)').click(); await waitForElement('input.next-checkbox-input:checked', 500, 10, true); await sleep(200); document.querySelector('button').click(); } function setInput(input, value) { if (!input) { return; } const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set; nativeInputValueSetter.call(input, value); input.dispatchEvent(new Event('change', {bubbles: true})); input.dispatchEvent(new Event('keyup', {bubbles: true})); input.dispatchEvent(new Event('keydown', {bubbles: true})); input.dispatchEvent(new Event('keypress', {bubbles: true})); input.dispatchEvent(new Event('input', {bubbles: true})); input.dispatchEvent(new Event('blur', {bubbles: true})); }; function waitForElement(selectors, interval = 250, seconds = 0, waitForDisappear = false) { return new Promise((resolve) => { if (!Array.isArray(selectors)) { selectors = [selectors]; } seconds = seconds * 1000; const startTime = Date.now(); const check = () => { let found = selectors.some(s => { const el = document.querySelector(s); return !!(el && isVisible(el)); }) if (!waitForDisappear && found || waitForDisappear && !found) { return resolve(true); } if (seconds > 0 && Date.now() - startTime > seconds) { return resolve(false); } setTimeout(check, interval); }; check(); }); }; function isVisible(e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); }; async function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); }; })();
Там описано важное условие, в течении 7 секунд нужно открыть окно ввода данных карты после нажатия кнопки оплатить из заказов. Точно работает на ком-версии сайта.у меня скрипт не заполнят поля, имеет значение какая выбрана страна и язык сайта ?
Что добавить?@Andronio
А можно сюда добавить свой форк скрипта?
Fork, база твоя но добавил чуток фуекционала. Делал для себя но может будет кому еще интересно.Что добавить?
У меня работаетВ мобильной версии не работает. Слайдер не двигает. Очень неудобно из за этого купоны получать
Сначала прочитал, подумал, что хочешь чтобы я что-то добавил и не понял что нужно от меня. Потом перечитал и понял. Конечно добавляй, чем больше людей пишут, тем больше пользы. Это же не моя личная ветка. Скрипты открытые, может править кто хочет.Fork, база твоя но добавил чуток фуекционала. Делал для себя но может будет кому еще интересно.
У меня в ru версии не работает, только в .com
привет, подскажи, его можно как-то в собиратель треков добавить?