Послушай, а почему например при авторизации на Али нельзя отправить одну строку выдраную например из фидлера? Ведь в скрипте по сути происходит автозаполнение полей логин-пароль ну и собственно нажатие кнопки войти.
Пробовал передавать эти параметры одной строкой или там какие-то подводные камни с этим связаны?
Попробую, думал просто реально ли это. А как на JS это лучше запустить? Там ведь что-то вроде такого будет:
ali.com/login.php?pass=123
Не подскажешь как такие ссылки лучше запускать?
Такс, не судите строго, особенно @Andronio. Я тут тоже сляпал скрипт, ну как сляпал -переделал код @Andronio. Собственно, функция скрипта - это ускорение оплаты на ЯД: проход логина и возврат на али. Не стал, автоматизировать нажатие кнопки оплатить, мне так неудобно, поэтому ее жмем руками и вводим код из смс. Но если будут заявки-попробую допилить.
ПС
Я в java или seleniume не шарю
Java:
// ==UserScript==
// @name Extra pay by YM
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Авторизация на Yandex
// @Author Me
// @match https://money.yandex.ru/payments/internal/success*
// @match https://money.yandex.ru/payments/internal/confirmation*
// @match https://passport.yandex.ru/auth*
// @match https://shoppingcart.aliexpress.com/order/payResult.htm?cashierRequestNo*
// @GranT none
// ==/UserScript==
let yandexLogin = "";
let yandexPass = "";
(function repeat() {
'use strict';
let href = window.location.href;
if (window.location.href.indexOf("https://money.yandex.ru/payments/internal/confirmation") > -1) {
$(function enter(){
document.getElementsByClassName("control button2 button2_view_classic button2_size_m button2_theme_pseudo button2_type_link")[0].click();
});
}
if (/passport\.yandex\.ru\/auth/.test(href)) {
let newForm = document.getElementById("passp-field-login");
if (newForm) {
document.querySelector("form").submit();
return;
} else {
document.getElementById("login").value = yandexLogin;
document.getElementById("passwd").value = yandexPass;
document.querySelector(".js-submit-button").click();
}
}
if (/shoppingcart\.aliexpress\.com\/order\/payResult\.htm/.test(href)) {
let mybtn = document.querySelectorAll(".operation-container > .next-btn-primary")
if (mybtn.length != 0) {
mybtn[1].click();
} else {
setTimeout(repeat, 500);
}
}
if (window.location.href.indexOf("https://money.yandex.ru/payments/internal/success") > -1) {
window.location.href = "https://trade.aliexpress.com/orderList.htm";
}
})();
@Andronio, помоги, пожалуйста)
В скрипте для вытягивая информации о заказе, хочу сделать так, чтобы он картинку вытасиквал и вставлял в эксель, но юзаю гугл шитс, туда нужно картинку вставлять по формуле только, короче:
Код:
let picURL = product[num].querySelectorAll(".pic.s50 > img")[0].src;
if (picPrefix) picURL = "picURL=" + picURL;
?
У меня уже вроде почти получилось, но он начал ругаться на ковычки, ссылку внутри скобок надо обязательно брать в ковычки и он не дает, буду очень благодарен за помощь.
Если логин-пароль хранится в экселе в соседних ячейках, то для входа на алиэкспресс (login.aliexpress.com) достаточно в экселе скопировать две соседние ячейки и сделать ctrl+v -> enter (или кнопка). Получается одно действие вместо двух.
Cкрипт, понимает логин-пароль с двоеточием и табуляцией, понимает email вида abc@xyz.mail.ua
Для ВХОДА вставить логин-пароль и нажать Enter СЛЕВА (большая кнопка в виде перевернутой буквы Г).
Для РЕГИСТРАЦИИ вставить логин-пароль и нажать Enter СПРАВА на дополнительной цифровой клавиатуре, либо shift+Enter (большая кнопка в виде перевернутой буквы Г) - для ноутбуков, где нет цифровой клавиатуры.
Также работают экранные кнопки под полем ввода.
Код:
// ==UserScript==
// @name Aliexpress Register/Login
// @namespace http://tampermonkey.net/
// @version 0.2
// @description try to take over the world!
// @author Andronio
// @match https://login.aliexpress.com/*
// @match https://login.aliexpress.ru/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
var div = document.createElement('div');
div.className = 'myBox';
div.innerHTML += `
<input type="text" id="namepass"></br>
<input type="button" id="rega" class="mybutton" value="Рега">
<input type="button" id="vhod" class="mybutton" value="Вход">
`;
// Стили
var styles = `
.myBox {
position: fixed;
top: 0;
right: 0;
background: white;
box-shadow: 1px -1px 4px 1px;
max-width: 40%;
max-height: 400px;
padding: 10px 20px;
overflow-y: auto;
overflow-x: hidden;
z-index:9999;
}
.mybutton {
display: inline;
padding: 5px 10px;
margin-right:auto;
cursor:pointer;
}`
var styleSheet = document.createElement("style")
styleSheet.type = "text/css"
styleSheet.innerText = styles
document.head.append(styleSheet)
document.body.append(div);
let mybutton1 = document.getElementById("rega");
let mybutton2 = document.getElementById("vhod");
mybutton1.addEventListener('click', regaFunc);
mybutton2.addEventListener('click', vhodFunc);
let mytext = document.getElementById("namepass");
mytext.addEventListener('keydown', event => {
if (event.keyCode == "13") {
if (event.code == "Enter" && !event.shiftKey) document.getElementById('vhod').click();
if (event.code == "NumpadEnter" || event.code == "Enter" && event.shiftKey) document.getElementById('rega').click();
}
});
mytext.focus();
})();
// Функция регистрации
function regaFunc () {
let namepass = document.getElementById("namepass");
let mass;
mass = parseString(namepass.value);
if (mass) {
document.querySelectorAll(".next-tabs-tab")[0].click();
let email = document.querySelector(".email");
let pass = document.querySelector(".password");
email.setAttribute("value", mass[0]);
email.dispatchEvent(new Event("change", {bubbles: true}));
email.dispatchEvent(new Event("blur", {bubbles: true}));
let nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;
nativeInputValueSetter.call(pass, mass[1]);
pass.dispatchEvent(new Event('change', {bubbles: true}));
pass.dispatchEvent(new Event('blur', {bubbles: true}));
setTimeout(waitReady, 200);
} else alert("Нет логина");
}
// Ждем проверки email при реге
let timeout = 50;
function waitReady() {
if (document.querySelector(".email-checking")) {
if (--timeout) return setTimeout(waitReady, 200);
else return;
}
document.querySelector(".submit").click();
}
// Функция входа
function vhodFunc () {
let namepass = document.getElementById("namepass");
let mass;
mass = parseString(namepass.value);
if (mass) {
document.querySelectorAll(".next-tabs-tab")[1].click();
let signName = document.getElementById("fm-login-id");
let signPass = document.getElementById("fm-login-password");
let enterButton = document.querySelector(".fm-button.fm-submit.password-login");
signPass.value = mass[1];
signName.value = mass[0];
enterButton.click();
} else alert("Нет логина");
}
function parseString(str) {
if (str == "") return null;
if (/\w+@[\w\.]+\.\w+\t\w+/.test(str)) {
return str.split('\t');
} else if (/\w+@[\w\.]+\.\w+:\w+/.test(str)) {
return str.split(':');
} else return null;
}
---------Двойное сообщение соединено: ---------
Скрипт для автоматической регистрации на Алиэкспресс по пришлашению/промо-коду.
Cкрипт понимает логин-пароль с двоеточием и табуляцией, понимает email вида abc@xyz.mail.ua
скрипт запускается на --Ссылка удалена--, предназначен для быстрого забивания логина и пароля при реферральной реге друга.
Код:
// ==UserScript==
// @name Aliexpress Referral autoreg
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author Andronio
// @match https://sale.aliexpress.com/__pc/referral_register_success.htm*
// @grant none
// @noframes
// ==/UserScript==
let timeout = 50;
(function() {
'use strict';
var div = document.createElement('div');
div.className = 'myBox';
div.innerHTML += `
<input type="text" id="namepass"></br>
<input type="button" id="rega" class="mybutton" value="Рега">
`;
// Стили
var styles = `
.myBox {
position: fixed;
top: 0;
right: 0;
background: white;
box-shadow: 1px -1px 4px 1px;
max-width: 40%;
max-height: 400px;
padding: 10px 20px;
overflow-y: auto;
overflow-x: hidden;
z-index:9999;
}
.mybutton {
display: inline;
padding: 5px 10px;
margin-right:auto;
cursor:pointer;
}`
var styleSheet = document.createElement("style")
styleSheet.type = "text/css"
styleSheet.innerText = styles
document.head.append(styleSheet)
document.body.append(div);
let mybutton2 = document.getElementById("rega");
mybutton2.addEventListener('click', regaFunc);
let mytext = document.getElementById("namepass");
mytext.addEventListener('keydown', event => {
if (event.keyCode == "13") {
document.getElementById('rega').click();
}
});
mytext.focus();
btnRega();
})();
function btnRega() {
'use strict';
let btn = document.querySelector(".claimbtn");
if (!btn) {
if (--timeout) return setTimeout(btnRega, 200);
else return;
}
timeout = 50;
btn.click();
setMyFocus();
}
function setMyFocus(){
'use strict';
if (!document.getElementById("ws-xman-register-email") || !document.getElementById("ws-xman-register-password")) {
document.getElementById("namepass").focus();
if (--timeout) return setTimeout(setMyFocus, 200);
else return;
}
document.getElementById("namepass").focus();
}
function regaFunc() {
let signName = document.getElementById("ws-xman-register-email");
let signPass = document.getElementById("ws-xman-register-password");
let namepass = document.getElementById("namepass");
let mass;
if (namepass.value == "") return alert("Нет логина");
if (/\w+@[\w\.]+\.\w+\t\w+/.test(namepass.value)) {
mass = namepass.value.split('\t');
} else if (/\w+@[\w\.]+\.\w+:\w+/.test(namepass.value)) {
mass = namepass.value.split(':');
} else {
return alert("Нет логина");
}
signName.value = mass[0];
signName.dispatchEvent(new Event('change', {bubbles: true}));
signName.dispatchEvent(new Event('blur', {bubbles: true}));
signPass.value = mass[1];
signPass.dispatchEvent(new Event('change', {bubbles: true}));
signPass.dispatchEvent(new Event('blur', {bubbles: true}));
timeout = 50;
waitReady();
}
// Ждем проверки email при реге
function waitReady() {
if (document.getElementById("ws-xman-email-checking").style.display != "none") {
if (--timeout) return setTimeout(waitReady, 200);
else return;
}
document.getElementById("ws-xman-register-submit").click();
}
Приветик! Попробовала твой скрип для регистрации тот что в начале и почему то ничего не происходит когда вствляешь в поле мыло и пароль через двоеточие, когда строчки пустые он выдает окно, где написанно нет логина, а когда есть, ничего не происходит. Подскажи пожалуйста в чем может быть проблема
Приветик! Попробовала твой скрип для регистрации тот что в начале и почему то ничего не происходит когда вствляешь в поле мыло и пароль через двоеточие, когда строчки пустые он выдает окно, где написанно нет логина, а когда есть, ничего не происходит. Подскажи пожалуйста в чем может быть проблема