Скрипты на JavaScript для Алиэкспресс

Тема закреплена бессрочно

Пользуетесь ли этими скриптами?

  • Да

    Голосов: 290 64,6%
  • Нет

    Голосов: 159 35,4%

  • Всего проголосовало
    449
Есть ли хорошие рекомендации агента?
 
  • Like
Реакции: Ayuna
У меня почему то скрипт заполнения адреса перестал сам подставлять город. Нужно щелкнуть на графу города, тогда подставляет. Как будто задержку надо сделать побольше, после добавления области.
Версия сайта РУ.

ps
let delayStep = 200; //ms
заменил на 500
всё ок.
Чтобы не увеличивать время всех пауз (delay) я прибавил время только для case 4
было:
JavaScript:
case 4: //Ждем список областей, выбираем область
                //пропустим несколько строк
                        return setTimeout(fillAddrFunc, delayStep);
стало:
JavaScript:
case 4: //Ждем список областей, выбираем область
                //пропустим несколько строк
                        return setTimeout(fillAddrFunc, delayStep * 2.5);
delayStep оставил 200, поэтому срабатывает как 200 * 2.5 = 500 //ms
 
Последнее редактирование:
  • Like
Реакции: Andronio и Author

Вложения

  • 888qqqqqqqq.png
    888qqqqqqqq.png
    24,3 KB · Просмотры: 117
Исправил скрипт логина для нового слайдера
А сегодня новая хрень, на ру версии проскакивает "неверный логин или пароль" и все зависает... На com все работает!

UPD: похоже это не вина скрипта, а глюки русской версии...
 

Вложения

  • 01.png
    01.png
    21,8 KB · Просмотры: 84
Накидал для себя удобный скриптик для оплаты картой из заказов. Нужно дойти до вот этого окна и ждать заполнения
Посмотреть вложение 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));
    };

})();
у меня скрипт не заполнят поля, имеет значение какая выбрана страна и язык сайта ?
 
@Andronio
А можно сюда добавить свой форк скрипта?
 
у меня скрипт не заполнят поля, имеет значение какая выбрана страна и язык сайта ?
Там описано важное условие, в течении 7 секунд нужно открыть окно ввода данных карты после нажатия кнопки оплатить из заказов. Точно работает на ком-версии сайта.
---------Двойное сообщение соединено: ---------
@Andronio
А можно сюда добавить свой форк скрипта?
Что добавить?
 
  • Like
Реакции: Barss
В мобильной версии не работает. Слайдер не двигает. Очень неудобно из за этого купоны получать
У меня работает

Fork, база твоя но добавил чуток фуекционала. Делал для себя но может будет кому еще интересно.
Сначала прочитал, подумал, что хочешь чтобы я что-то добавил и не понял что нужно от меня. Потом перечитал и понял. Конечно добавляй, чем больше людей пишут, тем больше пользы. Это же не моя личная ветка. Скрипты открытые, может править кто хочет.
 
  • Like
Реакции: Author, Barss и Sky
Короче на той неделе задолбало по телефонам прыгать и вводить все для телеверки акков.
Решил написать автоматическую телеверку, весь механизм выложить не могу так как там нужно ставить софт на смартфоны и нужен свой сервер :)

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

Ссылка на скрипт:



P.S. В наличии еще пару "дополненых" скриптов есть, если будет интересно поделюсь.
P.S.S. Громадное спасибо за сорс скрипт всем ребятам, очень сэкономили мне время :)
 
Последнее редактирование:
Привет!
Sky, естественно интересно, будем рады новым скриптам)
 
Начала появляться новая форма ввода логина.
login.png

Логин пасс скрипт разделяет, слайдер тянет, на кнопку не жмет (
 
Последнее редактирование:
  • Like
Реакции: Filik